判断读文件结束的条件判断文件结束可以用C++里fstream的成员函数.eof(),不过我没有用过,所以我用C操作文件
判断读文件结束的条件
判断文件结束可以用C++里fstream的成员函数.eof(),不过我没有用过,所以我用C操作文件的方法,下面是一个读文件的程序
#include <iostream>
using namespace std;
void main()
{
FILE *fp = fopen( "t.txt ", "r ");
char OneChar;
if (fp == NULL)
exit(0);
while (fgets(&OneChar,1,fp)!=NULL)
{
cout < <OneChar;
}
}
但是运行后是一个死循环,永远都不可能有fgets(&OneChar,1,fp)!=NULL,和我想得不对,fgets返回的是一个字符指针,如果文件读完fgets应该读失败,返回NULL,我究竟哪里想错了
[解决办法]
int main()
{
FILE *fp = fopen( "test.txt ", "r ");
char OneChar;
if (fp == NULL)
exit(0);
while ((OneChar = fgetc(fp)) != EOF)
{
cout < <OneChar;
}
return 0;
}
[解决办法]
NULL的值是0,而EOF的值是-1。两者是不同的意义,不能混用。
[解决办法]
NUL一般是用来判断指针或者字符串是否为空
