在Linux系统下,输入mangetchar回车可以看到关于getchar()函数的介绍:$ man getcharSYNOPSIS #include 所在头文件 . int getchar(void); 函数原型 .DESCRIPTION fgetc() reads the next character from stream and returns it as an unsigned char cast to an int, or EOF on end of file or error. getc() is equivalent to fgetc() except that it may be implemented as a macro which evaluates stream more than once. getchar() is equivalent to getc(stdin). 该函数是由宏实现:#define getchar() getc(stdin) 即,相当于getc(stdin)函数,stdin是指标准输入。其功能为:从标准输入(一般为键盘,可重定向为其他文件)缓冲区中读取一个字符,并将该字符转换为int类型返回给调用者,当遇到文件结束标志(EOF :End Of File)或读文件失败时返回错误值-1。说明: 当程序调用getchar()时,程序就等着用户按键。用户输入的字符被存放在键盘缓冲区中,直到用户按回车为止(回车字符也放在缓冲区中)。当用户键入回车之后,getchar()才开始从stdin流中每次读入一个字符。 如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar()调用读取。也就是说,后续的getchar()调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键。#error是在预处理阶段,生成编译错误消息。