本文主要是介绍C语言读取不到文件的结束标志EOF的解决方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
使用C语言判断一个文件的行数:
用到如下的代码,发现读到最后一行就会出现死循环,一直读不到文件的EOF标志,将getc函数的返回值类型改为int类型(也就是将下面的第4行中的char改为int即可),就可以顺利的判断EOF的标志了。查阅资料得知,EOF为整型,不是字符型。
static int testFunCalTotalLine(void)
{FILE *pf = NULL;char c;int retTotalLine = 0;printf("%s----%d---", __FILE__, __LINE__);pf = fopen("/mnt/sdcard/aaaaa.dac", "r");printf("%s----%d---\n", __FILE__, __LINE__);if(NULL == pf){printf("FILE:/mnt/sdcard/aaaaa.dac open fail\n");return -1;}while((c = getc(pf)) != EOF){if('\n' == c){retTotalLine++;}}printf("%s:%d totalretTotalLine = %d\n", __FILE__, __LINE__, retTotalLine);return retTotalLine;
}
这篇关于C语言读取不到文件的结束标志EOF的解决方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!