谁能帮我弄清楚这些功能的工作原理。有两段代码-有和没有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?
最佳答案
这两个版本是不同的。
在第一个版本中,您读取了一个char
并将其写入。
在第二个中,您继续阅读并编写char
,直到char
是一个句点为止。请注意,将读取和写入句点。仅以下通过被忽略。不过,有一个警告。您没有初始化z
。根据编译器的不同,它可能会自动初始化为\ 0。否则,您将面临不确定的行为。
关于c - 函数putchar和getchar,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40075409/