为什么用getchar读取和打印整个字符串?

时间:2017-11-04 11:52:10

标签: c getchar

#include <stdio.h>
void main()
{
char c = getchar();
while ( c != '.')
{
putchar(c);
c = getchar();
}
}

当你运行上面的代码并输入任何字符串,如&#34; Shubham jain&#34;。整个字符串被复制并被打印,而getchar()应该只读取字符串中的第一个字符。谁能解释这是怎么回事?

3 个答案:

答案 0 :(得分:0)

当您使用程序输入字符串时,它会自动为getchar函数中字符串中的每个字符提供输入,并多次调用它。循环检测到'。'的那一刻。程序停止阅读任何更多的字符。

答案 1 :(得分:0)

所以输入字符串是缓冲的,当下次调用getchar()时,它不再等待用户输入一个新字符,而是从输入缓冲区中取出它。

答案 2 :(得分:0)

todate_date实际上并非 ... && ((FromDate >= fromdate_date && FromDate <= todate_date) || ToDate >= fromdate_date && ToDate <= todate_date)) select ... getchar。通常,您可以将输入char的内容存储到整数中并将其转换为char。现在,为什么它读了一切? int EOF getchar getc`读取单个字符。