C语言输入字符串如果为EOF则跳出循环 怎么弄啊

2024-12-19 20:36:23
推荐回答(4个)
回答1:

gets()返回的是指针,如果输入有误或者没有输入的话返回的是空指针,所以应该是gets(a)!=NULL

而且最好写成while(gets(a)!=EOF && gets(b)!=EOF),因为逗号表达式取的是最后一个表达式的值,照你那意思改写的话,要按两次Ctrl+C才能退出,这个只要按一次就行了

回答2:

while(scanf("%s%s",a,b)!=EOF)就是这个,你得连按两次ctrl+z才是EOF

回答3:

你改为文件输入输出
scanf("%s%s",a,b) 不好,因为碰到空格就BYEBYE了
是这么弄的
while (gets(a)!=EOF && gets(b)!=EOF)
gets()是两个函数,有两个返回值,你这么弄就相当于a,b要返回值

回答4:

没记错的话,gets根本就没有EOF这一说,你看它返回的都是指针~
因该是scanf才有EOF的,但是1L不对。
while(scanf("%s",a)!=EOF && scanf("%s",b)!=EOF)这个才对。