文件一旦被打开,就可以获取其状态。例如,feof 函数用于确定是否已到达文件的末尾。这在一次只读取文件的一小部分时非常有用。下面的示例展示了如何从文件中逐行读取,直到文件末尾。
filename = "myfile.txt"; fid = fopen (filename, "r"); while (! feof (fid) ) text_line = fgetl (fid); endwhile fclose (fid);
请注意,在某些情况下,一次性读取整个文件内容再进行处理,比逐行读取效率更高。这样做还有一个潜在的优势,即可以省去上面代码中的循环。
status = feof (fid) ¶如果文件描述符 fid 指定的文件已遇到文件结束条件,则返回 1,否则返回 0。
请注意,feof 仅在已经遇到文件末尾时返回 1,而不是在下次读取操作将产生文件结束条件时返回 1。
msg = ferror (fid) ¶[msg, err] = ferror (fid) ¶[…] = ferror (fid, "clear") ¶查询文件描述符 fid 指定的流的错误状态。
如果存在错误条件,则返回一个描述错误的字符串 msg。否则,返回一个空字符串 ""。
第二个输入参数 "clear" 是可选的。如果提供了该参数,则会清除该流上的错误状态。
可选的第二个输出是错误状态的数值指示。err 在遇到错误条件时为 1,否则为 0。
请注意,ferror 指示的是是否已经发生了错误,而不是下一次操作是否会导致错误条件。
() ¶打印已打开文件的列表,以及它们是用于读取、写入还是两者兼有。
例如:
freport ()
-| number mode arch name
-| ------ ---- ---- ----
-| 0 r ieee-le stdin
-| 1 w ieee-le stdout
-| 2 w ieee-le stderr
-| 3 r ieee-le myfile
另请参阅: fopen, fclose, is_valid_file_id.
版权所有 © 2024-2026 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-4