函数 putchar 和 getchar

Functions putchar and getchar

谁能帮我弄清楚这些功能是如何工作的。
有两段代码 - 有和没有 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);
}
}


问题是第一个工作正常,而第二个 return 是它得到的所有字符(例如,如果输入是 2222,函数returns 2222)。为什么没有 return 2?

两个版本不同

在第一个版本中,你读了一个 char 并写了它。

在第二个你继续读一个char并写它,直到char是一个句号。请注意,句点将被读取和写入。仅忽略以下传递。不过有一个警告。您没有初始化 z。根据编译器的不同,它可能会自动初始化为 \0。否则,您将面临未定义的行为。