C++,使用I/O流 判定文件是否为空,如何做呢?

来源:百度知道 编辑:UC知道 时间:2024/04/20 21:51:27
是这样的:
ifstream ifile; // 定义一个输入流,用于将文件中的数据读入到变量中.
ifile.open("d:\\message.txt");// 利用输入流打开一个文件,准备读取其中数据.
if (判断文件是否为空)
//问题在这里,我想判断打开的输入流文件是否为空,如果为空则执行1,否则执行2. 就是不知道括号内用什么I/O流函数能判断文件是否为空,求高手解答, 我用ifile.eof()作为判定条件,用! ifile.eof()作为判定条件在调试的时候都没有按预想的跳转,文件的close()操作都没有错误.
{ 1.... }
else
{ 2......}

你可以在open之后先ifile.peek();,之后再用ifile.eof()来检测。

ifile.seekg(0, ios_base::end);
streamoff i = ifile.tellg();
if (i <= 0)
{
cout << "File is empty" << endl;
}