int
main(void)
{
int c;
while ((c = getc(stdin)) != EOF)
if (putc(c, stdout) == EOF)
err_sys("output error");
if (ferror(stdin))
err_sys("input error");
exit(0);
}
这个例子用了getc 和 putc来完成任务。 要注意的是,
1. c是int类型的,要是用char则会产生问题
2. 判断是否出错的标志都是EOF
3. 要用ferror来判断是什么错误
4. 用feof来判断是否是文件结束
int
main(void)
{
char buf[MAXLINE];
while (fgets(buf, MAXLINE, stdin) != NULL)
if (fputs(buf, stdout) == EOF)
err_sys("output error");
if (ferror(stdin))
err_sys("input error");
exit(0);
}
1. fgets 和 fputs的错误返回不一样