谁能帮我弄清楚这些功能的工作原理。有两段代码-有和没有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/

10-15 13:44