函数 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。否则,您将面临未定义的行为。
谁能帮我弄清楚这些功能是如何工作的。
有两段代码 - 有和没有 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。否则,您将面临未定义的行为。