<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
函数以处理错误情况。