eof函数怎么用
时间:2024-11-09 01:57:02
答案

使用步骤

在达到文件末尾之前,EOF函数返回False。 打开文件进行 随机 或 二 进制访问时 ,EOF 返回 False, 直到最后执行的 Get 语句无法读取整个记录。

打开文件进行 二进制 访问后,尝试使用 Input 函数读取文件,直到 EOF 返回 True 时生成错误。 使用 INPUT 读取二进制文件时,使用LOF和Loc函数而不是EOF,或使用 EOF 函数时使用Get。 打开"输出"文件后,EOF始终返回True。

代码示例:

ofstream ofs("a.txt");

int n = 1;

while (--n) { //不进入循环体

ofs<<n<<"\t";

}

ofs.close();

int x=5,z = 0;

ifstream ifs("a.txt");

while (!ifs.eof())

{

cout<<ifs.eofbit<<endl; //输出1

x=ifs.get(); -------------》》输出-1,此时ifs指向文件结束符,所以若直接用get()取出,则会出错,出错的表示形式就是输出为-1,所以这个-1表示的是这是一个表示文件结束符,没有其他的数值含义。

// ifs>>x; ----------------》》 输出为5,这种写法与x=ifs.get()不同,在这种形式下,ifs指向文件结束符,所以ifs并没有实际的值,将ifs文件流取到的值赋给x,因为ifs没有值,所以此时x保持不变。

++z;

cout<<x<<"\t"<<flush;

}

ifs.close();

可知此时由于n=1,导致a.txt是空的,但是在从a.txt读时,首先判断ifs是否为EOF,程序这时进入循环,说明不是EOF,并读出此时eofbit为1(true),输出读取的值。然后再从新判断ifs是EOF,退出循环。

推荐
© 2024 答答问 m.dadawen.com