<font size=5>题目:把从键盘输入的文本按原样输出到名为file_a.text的文件中,用字符@作为键盘输入结束标志,并将file_a.text中的内容在屏幕上显示出来;</font>
参考答案:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *file;
char ch;
const char* filename = "file_a.txt";
file = fopen(filename, "w");
if (file == NULL)
{
printf("无法打开文件\n");
exit(1);
}
printf("请输入:\n");
while ((ch = getchar()) != '@')
{
fputc(ch, file);
}
printf("输入成功!\n");
fclose(file);
file = fopen(filename, "r");
if (file == NULL)
{
printf("无法打开文件\n");
exit(1);
}
printf("文件内容如下:\n");
while ((ch= fgetc(file)) != EOF)
{
putchar(ch);
}
fclose(file);
return 0;
}
代码说明
-
打开文件写入内容:
- 使用
fopen函数以写模式 ("w") 打开文件file_a.txt。如果文件无法打开,程序会输出错误信息并退出。 - 提示用户输入文本,直到输入
@为止。 - 使用
getchar从键盘读取字符,并使用fputc将字符写入文件。
- 使用
-
关闭文件:
- 使用
fclose关闭文件。
- 使用
-
打开文件读取内容:
- 使用
fopen函数以读模式 ("r") 重新打开文件file_a.txt。如果文件无法打开,程序会输出错误信息并退出。 - 使用
fgetc从文件读取字符,并使用putchar将字符输出到屏幕。
- 使用
-
关闭文件:
- 使用
fclose关闭文件。
- 使用
注意: 1.为了对文件进行使用操作,需要把FILE指针作为一个参数传递给每个标准I/O函数
2.exit(0);:正常终止程序并返回状态码 0 表示成功,exit(1); 退出,返回状态码 1 表示错误。
3.while ((ch = getchar()) != '@') 注意这一行 有3个括号,如果不将ch=getchar用括号括起来,会得到乱码。
4.const 关键字在C语言中用于声明常量或指示一个变量的值在初始化后不能被修改。const 关键字可以用于指针、函数参数、局部变量和全局变量。
5.在C语言中,EOF(End Of File)是一个宏,它表示文件的结束。在使用文件输入输出时,EOF常用来检测文件是否结束。这里是一个使用EOF检测文件结束的完整程序,它从键盘输入文本,将其写入名为file_a.txt的文件中,用字符@作为输入结束标志,然后将文件file_a.txt中的内容读取并显示在屏幕上。
6.stdlib.h 是C标准库中的一个头文件,它包含了许多常用的标准库函数,如内存分配、进程控制、转换和数学函数等。在上面的程序中,stdlib.h 主要用于调用 exit 函数以处理错误情况。
3986

被折叠的 条评论
为什么被折叠?



