[求助]关于EOF!
#include <stdio.h>
int main(void)
{
char str[10];
while(EOF != gets(str))
{
puts(str);
}
return 0;
}
main.c:7: warning: comparison between pointer and integer
:: === Build finished: 0 errors, 1 warnings ===
这是这样写的警告!另外
#include <stdio.h>
int main(void)
{
int a, b;
while(EOF != scanf("%d%d", &a, &b))
{
printf("%d", a + b);
}
return 0;
}
而这样写是正确的!当按F6时程序能够退出!
在红色字体的部分那里是要如何解释啊?
----------------解决方案--------------------------------------------------------
gets()只能接收 一个字符?
----------------解决方案--------------------------------------------------------
gets()返回char *
EOF是常数 -1
----------------解决方案--------------------------------------------------------
scanf出错时返回 -1
----------------解决方案--------------------------------------------------------
scanf什么时候能出错啊》?比如说????
是不是空格就错呢?
知道麻烦讲哈 谢谢
----------------解决方案--------------------------------------------------------
scanf("%d",&i);而你输入字符A,scanf返回-1
----------------解决方案--------------------------------------------------------
同志你想搞什么!!!!!!!!!!!!!!!!!!!!
----------------解决方案--------------------------------------------------------
我是想读入一字符串,当读到EOF时结束!
----------------解决方案--------------------------------------------------------
1. while(gets(str) != NULL)
2. while(scanf("%d%d", &a, &b)==2)
3.
int ch;
...
while((ch = getchar()) != EOF)
----------------解决方案--------------------------------------------------------
以下是引用zhanghuan_10在2006-11-29 12:30:17的发言:
我是想读入一字符串,当读到EOF时结束!
我是想读入一字符串,当读到EOF时结束!
while(EOF!=(scanf("%c",&c))) //读入一个字符串
while(EOF!=(scanf("%s",str)))//读入若干个字符串
----------------解决方案--------------------------------------------------------