#include <stdio.h>int main(voID){ file *fr; /* declare the file pointer */ fr = fopen ("some.txt","r"); /* open the file for reading */ /* elapsed.dta is the name of the file */ /* "rt" means open the file for reading text */ char c; while((c = getc(fr)) != NulL) { printf("%c",c); } fclose(fr); /* close the file prior to exiting the routine */ /*of main*/ return 0;}解决方法 尽管它的名称,getc返回一个int,而不是一个char,因此它可以表示所有可能的char值,此外还有EOF(文件末尾).如果getc返回了一个char,那么在没有使用文件中可能存在的值之一的情况下,将无法指示文件的结尾.
因此,要修复代码,必须先更改声明char c;到int c;这样它可以在返回时保持EOF标记.然后,您还必须更改while循环条件以检查EOF而不是NulL.
你也可以调用feof(fr)来单独测试文件结尾来读取字符.如果你这样做了,你可以把c留作char,但是你必须在读完字符之后但是在打印出来之前调用feof(),并使用break来摆脱循环.
总结以上是内存溢出为你收集整理的如何停止从C中的文件读取全部内容,希望文章能够帮你解决如何停止从C中的文件读取所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)