eof在c语言中的用法
在C语言中,EOF(End Of File)表示文件结束符,通常在文本的最后表示资料结束。
在scanf函数中,EOF的用法较为常见。scanf函数返回成功时,返回赋值的数据项数,出错时返回EOF。例如,scanf("%d %d", &a, &b),如果a、b均赋值成功返回值为2,只是a赋值成功返回1,a、b都不成功返回0,出错的时候返回EOF。EOF不是一个字符,它被定义为是int类型的一个负数-1。
在while循环中,可以使用EOF作为结束循环的条件。例如,while (scanf("%d", &n) != EOF) { },只要输入不出错,这个循环就会一直进行。如果要以输入0作为结束标志,可以写成while (scanf("%d", &n) != EOF, n) { }。同理,如果要以输入-1作为结束标志,可以写成while (scanf("%d", &n) != EOF, n != -1) { }。
在无固定结束标识符的情况下,可以通过手动输入的方式来结束循环。在终端(黑框)中手动输入时,系统并不知道什么时候到达了所谓的“文件末尾”,因此需要用Ctrl+z组合键然后按Enter键的方式来告诉系统已经到了EOF,这样系统才会结束while循环。