14.2.18文件结束和错误

一旦文件被打开,就可以获取其状态。作为一个例子feof函数确定是否已到达文件的末尾。这在一次读取文件的小部分时非常有用。以下示例显示如何一次从文件中读取一行,直到到达末尾。

filename=“myfile.txt”;fid=fopen(文件名,“r”);而(!feof(fid))text_line=fgetl(fid;结束时关闭(fid);

请注意,在某些情况下,读取文件的整体内容然后进行处理比按行读取更有效。这有一个潜在的优点,即删除上面代码中的循环。

 
: status = feof (fid)

如果文件描述符指定的文件遇到文件结束条件,则返回1fid否则为0。

请注意feof如果已经遇到文件末尾,则只返回1,而不是如果下一次读取操作将导致文件末尾的情况。

详见: fread, frewind, fseek, fclear, fopen.

 
: msg = ferror (fid)
: [msg, err] = ferror (fid)
: […] = ferror (fid, "clear")

查询文件描述符指定流的错误状态fid.

如果存在错误条件,则返回一个字符串消息描述威瑟罗。否则,返回一个空字符串.

第二个输入清楚的是可选的。如果提供,流上的错误状态将被清除。

可选的第二个输出是错误状态的数字指示。犯错误如果遇到错误条件,则为1,否则为0。

请注意铁氧体指示是否已经发生错误,而不是下一个操作是否会导致错误情况。

详见: fclear, fopen.

 
: fclear (fid)

清除文件描述符指定的文件的流状态fid.

详见: 铁氧体, fopen.

 
: freport ()

打印已打开的文件的列表,以及这些文件是为了读取、写入还是同时打开。

例如

freport()-|数字模式arch名称-|---------|0 r ieee le stdin-|1 w ieee le STD out-|2 w ieee le-stderr-|3 r ieee le-myfile

详见: fopen, fclose, is_valid_file_id.


版权所有 © 2024 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号