gpt4 book ai didi

c - 使用 getchar 读取整数输入时出现意外的 putchar 输出

转载 作者:行者123 更新时间:2023-12-03 05:11:35 26 4
gpt4 key购买 nike

我正在经历这个计划:

#include<stdio.h>

main()
{
int c;

c = getchar();

while(c != EOF) {
putchar(c);
c = getchar();
}
}

由于变量c是整数,因此它应该存储给定输入的整数等效值。输出显示 'a' 打印为 'a''b' 打印为 'b''c''c' 但是,当我输入值 65 时,输出也是 65!所以值65和字符'a'

的存储格式一定有区别

这两种值(value)观如何相互区别?

最佳答案

这是因为输入 65 被视为两个不同的字符输入,并且程序按顺序打印它们。

当您输入 6 时,程序会立即读取它并检查它是否不是 EOF,因此会将其打印到控制台。然后,当您输入 5 时,它会再次将其作为输入。由于这也不是 EOF,因此您的程序将再次打印它。

因此,您输入了两个字符,并且该程序将其正确打印到控制台,就像它应该做的那样。除此之外,没有任何歧视。 a 的整数相当于 65,因此如果打印这样的字符,它将打印 65 -

 char c = 'a';
printf("%d", c); // will print 65

这将打印a -

int i = 65;
printf("%c", i); // will print a

关于c - 使用 getchar 读取整数输入时出现意外的 putchar 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7476557/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com