C语言getchar()函数:从控制台读取字符并立即回显
头文件:#include <stdio.h>
函数getchar()用于从标准输入控制台读取字符,原型如下:
int getchar(void);
【参数】该函数没有参数。
【返回值】函数的返回值为用户输入的第一个字符的ASCII码,若出错返回-1,且将用户输入的字符回显到屏幕。如果用户在按回车键之前输入了不只一个字符,其他字符会保留在键盘缓冲区中,等待后续getchar()调用读取。也就是说,后续的getchat()调用不会等待用户按键,而是直接读取缓冲区中的字符,直到缓冲区的字符读取完毕后,才等待用户按键。
【说明】getchar()非真正函数,而是getc(stdin)宏定义。
【实例】下面的示例演示了getchar()函数的使用,使用该函数获取标准输入控制台中的字符,直到按回车键结束,代码如下。
读者可以尝试将第5行的 printf ("%c", c) 改成printf ("%d", c),看看有什么效果。
请读者再来看一个例子,代码如下:
函数getchar()用于从标准输入控制台读取字符,原型如下:
int getchar(void);
【参数】该函数没有参数。
【返回值】函数的返回值为用户输入的第一个字符的ASCII码,若出错返回-1,且将用户输入的字符回显到屏幕。如果用户在按回车键之前输入了不只一个字符,其他字符会保留在键盘缓冲区中,等待后续getchar()调用读取。也就是说,后续的getchat()调用不会等待用户按键,而是直接读取缓冲区中的字符,直到缓冲区的字符读取完毕后,才等待用户按键。
【说明】getchar()非真正函数,而是getc(stdin)宏定义。
【实例】下面的示例演示了getchar()函数的使用,使用该函数获取标准输入控制台中的字符,直到按回车键结束,代码如下。
#include<stdio.h> void main( ){ int c; while( (c=getchar()) != '\n' ) //从控制台流中读取字符,直到按回车键结束 printf ("%c", c); //输出读取内容 }运行上述程序后,将采用getchar()函数获取当前控制台的输入,直到按回车键结束,并将其输出。
读者可以尝试将第5行的 printf ("%c", c) 改成printf ("%d", c),看看有什么效果。
请读者再来看一个例子,代码如下:
#include<stdio.h> void main() { char ch = getchar(); char ch2 = getchar(); printf("You put char is %c\n",ch); printf("You put char is %c\n",ch2); system("pause"); return; }例子本身很简单,但是仔细分析会发现有许多需 要注意的地方。输入字符wes然后按回车键出现运行结果。这里着重与getch()对比分析。首先,它需要按回车键才能返回。其次, 它返回的是缓冲区的第一个字符。再者它可以连续多次获取在按回车键前输入的多个字符。而getchO则是无回显的且不需要按回车键即返回。