十神下流的狗 发表于 2024-10-26 21:40:31

getchar()函数问题

为何逐位输出数字时都显示为1?

FishC 发表于 2024-10-26 21:41:39

使用`getchar()`可能是因为你检查输出条件或者打印逻辑处理不当。确保你将`getchar()`的返回值正确转换为字符输出,并且逻辑正确处理,例如:

#include <stdio.h>

int main() {
    int ch;
    while ((ch = getchar()) != EOF) {
      putchar(ch);
    }
    return 0;
}

如果你处理的是数字字符,确保添加了合适的条件或转换来正确打印每个字符。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

jackz007 发表于 2024-10-26 21:55:51

本帖最后由 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')

FWJ-Einstein 发表于 2024-10-27 00:10:15

下次提问的时候可以把源码用代码块粘贴上来,然后楼上的答案应该是正确的
页: [1]
查看完整版本: getchar()函数问题