读取+检查字符串导致的无限循环如何解决?
输入一个单词 结果就是以首字母无限循环。
#include <stdio.h>
#include <ctype.h>
int main(int argc, char **argv)
{
char c; // 我是不是应该把这里改成 char c[] ?
c = fgetc(stdin); // 但是 才学了这个fgetc 应该是要用上的…… 但是它是只读取一个字符就反回吧?
while(c != EOF){
if(isalnum(c))
printf("%c", c);
else
c = fgetc(stdin);
}
我应该怎么修改呢?
return 1;
}
[解决办法]
if(isalnum(c)) { printf("%c", c); } //else c = fgetc(stdin);
[解决办法]
C缺陷与陷阱5.1节 返回整数的getchar
我们首先看下面的这个例子:
#include <stdio.h>int main(){char c; /* 改成:int c 就正确了 */ while( ( c = getchar() ) != EOF ) { putchar( c ); } return 0;}