【发布时间】:2020-06-24 10:35:17
【问题描述】:
我想读取未知数量的字符,不超过 10 个。
char word[10];
for( i=0;i<10;i++){
if( !scanf("%c",&word[i])){ //terminate with 0
getchar();
break;
}
}
问题是数字也是一个字符,所以 if 语句不会被执行。是否有任何其他解决方案可以终止字符输入,例如使用 0。
【问题讨论】:
-
提示:
scanf()不返回扫描的条目,它返回扫描和匹配的项目数。 -
所以如果我输入 0,那么什么都不会被扫描?
-
为什么不呢?但它不返回 0,以防扫描成功。
-
所以在这种情况下我必须写:scanf(..)==0.
-
我建议使用 getchar() 来读取单个字符。本帖相关stackoverflow.com/questions/14419954/…