有人能帮我弄清楚这些函数是如何工作的吗。
有两段代码--带和不带的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
发布于 2016-10-16 21:05:45
这两个版本是不同的。
在第一个版本中,您将读取单个char并编写它。
在第二阶段,您将继续阅读并编写char,直到char成为句点为止。请注意,期间将被读和写。只忽略下面的传递。不过,这里有个警告。您没有初始化z。根据编译器的不同,它可以自动初始化为\0。否则,您将面临未定义的行为。
https://stackoverflow.com/questions/40075409
复制相似问题