推荐答案
// www.javascriptcn.com code example
#include <stdio.h>
int main() {
FILE *fp;
int c;
// 打开文件用于读取
fp = fopen("input.txt", "r");
if (fp == NULL) {
perror("打开文件失败");
return 1;
}
// 使用 fgetc 读取文件内容
while ((c = fgetc(fp)) != EOF) {
// 使用 fputc 将读取的字符输出到标准输出
fputc(c, stdout);
}
// 关闭文件
fclose(fp);
return 0;
}本题详细解读
fgetc 函数
fgetc 函数用于从指定的文件流中读取一个字符。其函数原型如下:
int fgetc(FILE *stream);
- 参数:
stream是指向FILE对象的指针,通常是通过fopen函数打开的文件。 - 返回值:返回读取的字符(转换为
int类型)。如果到达文件末尾或发生错误,则返回EOF。
fputc 函数
fputc 函数用于将一个字符写入指定的文件流。其函数原型如下:
int fputc(int c, FILE *stream);
- 参数:
c是要写入的字符(转换为int类型)。stream是指向FILE对象的指针,通常是通过fopen函数打开的文件。
- 返回值:成功时返回写入的字符,失败时返回
EOF。
示例代码解析
打开文件:使用
fopen函数以只读模式打开文件input.txt。如果文件打开失败,fopen返回NULL,并输出错误信息。读取文件内容:使用
fgetc函数从文件中逐个字符读取内容,直到文件末尾(EOF)。输出字符:使用
fputc函数将读取的字符输出到标准输出(通常是终端)。关闭文件:使用
fclose函数关闭文件,释放资源。
注意事项
fgetc和fputc函数适用于处理单个字符的输入输出操作。- 在使用
fgetc和fputc时,务必检查文件是否成功打开,并在操作完成后关闭文件。 EOF是一个特殊的宏,表示文件末尾或读取错误,通常值为-1。