您的位置:首页 > 编程语言 > C语言/C++

C语言中EOF小结

2015-05-08 14:08 288 查看
闲暇时候偶尔拿起同事的《征服C指针》进行浏览,发现一个自己以前都没有在意的一个内容“EOF",对书中的内容进行运行,发现自己尽然无法退出程序,非常郁闷,因此详细研究下。

程序片段是如此while((ch = getc(fp)) != EOF){ putchar(ch)}

EOF的定义为#define EOF (-1),getc()返回int类型的值。

1.EOF:在windows下是ctrl+Z,上述情况,运行程序后在新的一行输入ctrl+z,然后点击回车,便可以跳出循环了,哦也。

2.getc()和getchar()的区别。getchar()从标准输入流(stdin)中读取字符。getc()从文件流中读取字符。

原型:int getchar(void);

int getc(FILE *stream);

代码:

#include <stdio.h>

#include <stdlib.h>

void type_one_file(FILE *fp)

{

int ch;

while ((ch = getc(fp)) != EOF)

{

putchar(ch);

}

}

int main(int argc, char **argv)

{

if (argc == 1)

{

type_one_file(stdin);

}

else

{

int i;

FILE *fp;

printf("%d\n",argc);

for (i = 1; i < argc; ++i)

{

printf("%s\n",argv[i]);

fp = fopen(argv[i],"rb");

if (fp == NULL)

{

fprintf(stderr, "%s:%s can not open.\n", argv[0], argv[i]);

exit(0);

}

type_one_file(fp);

fclose(fp);

}

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: