getchar()函数问题
为何逐位输出数字时都显示为1? 使用`getchar()`可能是因为你检查输出条件或者打印逻辑处理不当。确保你将`getchar()`的返回值正确转换为字符输出,并且逻辑正确处理,例如:#include <stdio.h>
int main() {
int ch;
while ((ch = getchar()) != EOF) {
putchar(ch);
}
return 0;
}
如果你处理的是数字字符,确保添加了合适的条件或转换来正确打印每个字符。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 本帖最后由 jackz007 于 2024-10-26 21:58 编辑
这一句有问题:
while (x=getchar() != '\n')
在 C 语言的运算符中,!= 的优先级高于 =,所以,上面那一句实际上可以等效改写为:
while (x=(getchar() != '\n'))
在这个逻辑表达式中,只要没有键入 '\n' 字符,x 的值就是 true,也就是楼主看到的数值 1
如果希望 x 中保存的是 getchar() 得到的字符,这一句应该这样写:
while ((x=getchar()) != '\n') 下次提问的时候可以把源码用代码块粘贴上来,然后楼上的答案应该是正确的
页:
[1]