任何人都可以帮我弄清楚这些功能是如何工作的。
有两段代码 - 有和没有 while循环。
#include <stdio.h>
int main(void)
{
char z;
z = getchar();
putchar (z);
}
第二个是
#include <stdio.h>
int main(void)
{
char z;
while (z != '.')
{
z = getchar();
putchar(z);
}
}
问题是第一个正常工作,而第二个返回它获得的所有字符(例如,如果输入 2222 ,则函数返回 2222 )。为什么不返回 2 ?
答案 0 :(得分:0)
两个版本不同。
在第一个版本中,您阅读了一个char
并写下来。
在第二部分,你继续阅读char
并撰写,直到char
为期。请注意,将读取和写入期间。仅忽略以下传递。但是有一个警告。您没有初始化z
。根据编译器的不同,它可能会自动初始化为\ 0。否则,您将面临未定义的行为。