我正在使用带有 gcc 的Ubuntu 12.04 LTS。任何人都可以告诉我,这个字符类型变量如何保存多个字节?注意:此程序将回显您键入的所有字符(多个)。例如,如果您输入“thilip”,那么它将作为“thilip”回显。每个字符保存8位(一个字节),所以我输入了6个字符(6个字节)。然后,getchar函数如何将此值赋给只能保存一个字节的字符类型变量?
#include <stdio.h>
int main(void)
{
char ch;
while ((ch = getchar()) != '#')
putchar(ch);
return 0;
}
答案 0 :(得分:2)
它不能。每次调用getchar
时,其先前的值都会被新的值覆盖。
答案 1 :(得分:1)
char
类型变量是1个字节。您可以通过
printf("%zu", sizeof(char));
如果您想知道提供输入
asdf
正在打印
asdf
由于ch
持有此asdf
,因此您错了。 getchar()
一次只能读取一个字符
当您输入多个char
时,这组字符将存储在输入缓冲区中。然后,getchar()
从此输入缓冲区中逐个读取一个字符,并一次为char
变量ch
分配一个字符,putchar()
逐个打印它。每次迭代后ch
被getchar()
读取的新字符覆盖
您可以通过运行此代码
getchar()
一次只能读取一个char
#include <stdio.h>
int main(void)
{
char ch;
ch = getchar();
putchar(ch);
return 0;
}
输入:
thilip
输出:
t
getchar()
返回int
。您应将ch
声明为int
。
答案 2 :(得分:0)
这是一个字节。是什么让你认为不是?