我在 Stack Overflow 上读到了几个问题,但这里的每个人都在解释 K&R 中已经解释过的问题。我想问一下下面的程序什么时候运行。然后,如果我在控制台中输入我的名字,它就会在下一行中打印出来。首先这个函数的名字是getchar
为什么它不只需要一个字符“a”或任何其他字符?无论我的输入有多长,我都会得到正确的输出。
我写了“adfsajfsjssadfsa.......最多 100 个字符,putchar 准确地复制了它”。另外本书正在使用 int
。我知道int
最多可容纳 4 个字节的数据,远大于 char
但是如果我们可以使用其中任何一种数据类型,那么在 C 中提供数据类型有什么用呢?
为什么putchar
打印到下一行?它是以这种方式构建的,总是在下一行打印输出吗?我写了adfsajfsjssadfsa.......upto to 100 characters and putchar copied it exactly
什么时候会出现错误和整数 c
的情况将无法保存如此大的数据。有多少个字符?
#include <stdio.h>
int main()
{
int c;
c=getchar();
while(c!=EOF){
putchar(c);
c=getchar();
}
}
最佳答案
- 您多次调用 getchar 和 putchar(因为它们位于循环内),因此它们会获取并打印多个字符。
- 使用 getchar 时必须使用 int 变量,因为 getchar 可以返回任何字符或 EOF。 EOF 不是字符,因此它不适合字符,它代表文件的结尾。
关于c - getchar 和 putchar 不像名称指定的那样工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25454454/