getchar()
循环中的while
在打印整个字符串后接受输入。任何人都可以解释getchar()
和putchar()
如何工作?
我包括以下代码片段和输出。也无法理解此代码的行为
#include <stdio.h>
int main(int argc, char **argv)
{
int c ;
c = getchar();
while(c!=EOF){
putchar(c);
printf("%d\n",EOF);
printf("before getchar in while loop");
c=getchar();
printf("after getchar in while loop");
printf("jas\n");
}
return 0;
}
getchar
最终被处理到控制台输入管理例程。在默认配置(没有ioctl
或等效调用)中,这些例程将在将字符串返回到程序进行处理之前读取并回显整行。返回后,getchar将准备好在返回控制台输入例程之前处理整行。
int getchar(void)函数从屏幕读取下一个可用字符并将其作为整数返回。此函数一次只读取一个字符。如果要从屏幕中读取多个字符,可以在循环中使用此方法。
int putchar(int c)函数将传递的字符放在屏幕上并返回相同的字符。此功能一次只放置一个字符。如果要在屏幕上显示多个字符,可以在循环中使用此方法。检查以下示例 -
#include <stdio.h>
int main( ) {
int c;
printf( "Enter a value :");
c = getchar( );
printf( "\nYou entered: ");
putchar( c );
return 0;
}
编译并执行上述代码时,它会等待您输入一些文本。当您输入文本并按Enter键时,程序继续执行并只读取一个字符并显示如下 -
$./a.out
Enter a value : this is test
You entered: t
参考:https://www.tutorialspoint.com/cprogramming/c_input_output.htm