c语言程序设计 怎么以输入EOF结束

Python019

c语言程序设计 怎么以输入EOF结束,第1张

EOF(End Of File)是C语言中的文件结束标志符。当C语言输入函数获取到文件结尾标志时,会通过返回值的方式体现该值。

所以要以输入EOF为结束,就需要判断输入函数的返回值。

EOF定义在stdio.h中,与常用的输入函数相同,所以不需要额外引用头文件。

以下根据输入函数不同,分别说明EOF的判断。

1 getchar

getchar函数的功能是读入一个字符。适用于逐个字符输入的情况。

其返回值为int型,常见的做法是赋值给char型变量,但如果要检查EOF,则必须将返回值赋值给int型。

代码:

int c

while(1)

{

    c = getchar()//读入一个字符。

    if(c == EOF)break//如果遇到EOF则退出循环,即结束输入。

}

2 scanf

scanf是最常用的C语言输入,其作用为格式化输入,可以用来输入各种类型的变量值。

以int型为例:

int c, ret

while(1)

{

    ret = scanf("%d",&c)//读入一个整型值。

    if(ret == EOF)break//如果遇到EOF则退出循环,即结束输入。注意判断的是返回值,而不是读入的变量。

}

3 gets

gets作用是读入一行数据,存到字符数组中,并把读到的换行符转换为字符串结束符。

正常情况下其返回值为传入的指针,当遇到EOF时,其返回NULL(空指针)。

所以用gets读入时可以这样判断:

char s[100]

while(1)

{

    if(gets(s) == NULL) break// 当gets返回NULL时代表遇到EOF,结束输入。

}

当输入为文件时,遇到文件结尾C语言可以自动识别EOF,但如果输入为命令行交互模式,那么需要手动输入EOF. 在windows平台输入EOF的方法为,同时按下ctrl和z键。如果是unix/linux平台,则需要同时按下ctrl+d键。

函数返回可以用return,不用也可以,但是可能会导致程序异常,一般建议使用return。

return 表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。

return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。 如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。

扩展资料:

在函数中,如果碰到return 语句,那么程序就会返回调用该函数的下一条语句执行,也就是说跳出函数的执行,回到原来的地方继续执行下去。但是如果是在主函数中碰到return语句,那么整个程序就会停止,退出程序的执行。

函数的返回值是由返回语句return实现的,函数执行的最后一个操作就是返回,返回的意义是:

(1)子程序函数返回主调函数,宣告函数的一次执行结束,在调用期间所分配的变量单元被撤消;

(2)送函数值到调用表达式中,当然这一点并不是必需的,因为有些函数有返回值,有些函数没有返回值。

如果是int main,就直接写return 0

如果是void main,就直接写return

或者写个goto也行

如果在子函数里,就写个exit(0)