C编程:从文件读取并打印到控制台
C programming: Reading from file and printing to console
晚上好,
我知道有类似的问题,我一直在筛选这些问题,但这个特定问题似乎是独一无二的。
我正在尝试找出如何简单地将文本文件读入字符串,然后将字符串写入标准输出。我试过这段代码,但是当我调用 puts() 时,控制台没有任何反应。 file.txt 正确生成并写入 "hello",但最后一个 if 语句由于某种原因似乎不起作用,因为它没有达到我的测试条件。我怎样才能使这个功能?
这是网上很多很多例子给出的代码,稍作修改:
#include <stdio.h>
int main()
{
FILE *fp;
char str[60];
fp = fopen("file.txt","w+");
fprintf(fp,"%s","hello");
if(fp==NULL){
perror("Error opening file");
return(-1);
}
if (fgets (str, 60, fp)!=NULL)
puts(str);
printf("%s","test");
fclose(fp);
return 0;
}
写入文件后,您必须fclose()
fp
并重新fopen()
读取文件。
当您调用 fgets()
时,文件指针已经位于文件末尾。在 fgets()
.
之前添加对 rewind(fp)
的调用
哦,当您打开文件时,请在调用 fprintf()
之前检查 fp==NULL
。
晚上好,
我知道有类似的问题,我一直在筛选这些问题,但这个特定问题似乎是独一无二的。
我正在尝试找出如何简单地将文本文件读入字符串,然后将字符串写入标准输出。我试过这段代码,但是当我调用 puts() 时,控制台没有任何反应。 file.txt 正确生成并写入 "hello",但最后一个 if 语句由于某种原因似乎不起作用,因为它没有达到我的测试条件。我怎样才能使这个功能?
这是网上很多很多例子给出的代码,稍作修改:
#include <stdio.h>
int main()
{
FILE *fp;
char str[60];
fp = fopen("file.txt","w+");
fprintf(fp,"%s","hello");
if(fp==NULL){
perror("Error opening file");
return(-1);
}
if (fgets (str, 60, fp)!=NULL)
puts(str);
printf("%s","test");
fclose(fp);
return 0;
}
写入文件后,您必须fclose()
fp
并重新fopen()
读取文件。
当您调用 fgets()
时,文件指针已经位于文件末尾。在 fgets()
.
rewind(fp)
的调用
哦,当您打开文件时,请在调用 fprintf()
之前检查 fp==NULL
。