C语言输入输出操作全解析
1. 错误处理
在C语言的I/O操作中,错误处理至关重要。I/O函数通常会通过多种机制向调用者指示错误的发生,具体如下:
- 返回值和状态标志 :I/O函数一般通过返回值来表明是否发生错误。当读写出现错误时,它们还会在控制流的 FILE
对象中设置错误标志。可以使用 ferror()
函数来查询该标志。例如:
(void)fputc( '*', fp ); // Write an asterisk to the stream fp.
if ( ferror(fp) )
fprintf( stderr, "Error writing.\n" );
此外,读取函数在到达文件末尾时会设置流的EOF标志,可以使用 feof()
函数查询该标志。许多读取函数在尝试读取文件最后一个字符之后的内容时会返回宏 EOF
(宽字符函数返回 WEOF
),但返回 EOF
或 WEOF
也可能表示发生了错误,需要调用 ferror()
或 feof()
来区分这两种情况。示例代码如下:
int i, c;
char buffer[1024];
/* ... Open a file to read u