gpt4 book ai didi

c - 为什么要在 C 的字符串输入中使用 int 类型的变量?

转载 作者:太空宇宙 更新时间:2023-11-04 05:19:14 24 4
gpt4 key购买 nike

我正在研究 C 中的输入和输出方法,我看到了一段代码,其中有一个我无法理解的元素。这段代码的目的是展示“回声”和“缓冲”输入/输出是如何工作的,并且在代码中,它们有一个类型“int”声明,据我所知,字符:

#include <stdio.h>

int main(void){

int ch; //This is what I do not get: why is this type 'int'?

while((ch = getchar()) != '\n'){
putchar(ch);
}
return 0;
}

我对类型转换并没有坚定的立场,这种“int”/“char”的差异正在破坏我对数据类型和兼容性的所有观念。

最佳答案

getchar()返回一个int类型,因为它被设计成能够返回一个不能用char表示的值来表示EOF。 (C.11 §7.21.1 ¶3 和 §7.21.7.6 ¶3)

您的循环代码应该考虑到 getchar() 可能会返回 EOF:

while((ch = getchar()) != EOF){
if (ch != '\n') putchar(ch);
}

关于c - 为什么要在 C 的字符串输入中使用 int 类型的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19579014/

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