猿问

如下所示,第(11)行的getchar();有什么作用?有谁还能举几个getchar()用法的例子?

有这样一个C程序:
(1)#include<stdio.h> /*应用printf函数*/
(2)#include<ctype.h> /*应用toupper函数*/

(3)void print()
{
(3) printf("\n\t This ia an example.\n\n\t You are welcome!!\n\n");
} /*\n 表示换行;\t 表示移动8个字符位*/

(4)main()
{
(5) int flag=1; /*定义整型变量并赋值*/
(6) char ch; /*定义字符变量*/
(7) while(flag)
{
(8) printf("\n Input 'F' or 'f' to start the program,\n other to exit:");
(9) ch=getchar();
(10) ch=toupper(ch); /*得到大写字母*/
(11) getchar(); /*去掉回车符*/
(12) if(ch=='F')
(13) print();
(14) else
(15) flag=0;
}
(16) return;/*返回*/
}



慕的地6264312
浏览 161回答 4
4回答

交互式爱情

getchar 由宏实现:#define getchar() getc(stdin)。getchar有一个int型的返回值。当程序调用getchar时,程序就等着用户按键,用户输入的字符被存放在键盘缓冲区中,直到用户按回车为止(回车字符也放在缓冲区中)。当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符,getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕。如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取。也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键。getchar函数的功能是从键盘上输入一个字符。其一般形式为: getchar();通常把输入的字符赋予一个字符变量,构成赋值语句,如:char c;c=getchar();#include<stdio.h>void main(){char c;printf("input a character\n");c=getchar();putchar(c);}使用getchar函数还应注意几个问题:getchar函数只能接受单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一个字符。使用本函数前必须包含文件“stdio.h”。在TC屏幕下运行含本函数程序时,将退出TC 屏幕进入用户屏幕等待用户输入,输入 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;完毕再返回TC屏幕。

茅侃侃

getchar 由宏实现:#define getchar() 。getchar(stdin)语句功能:getchar有一个int型的返回值,当程序调用getchar时,程序就等着用户按键,用户输入的字符被存放在键盘缓冲区中,直到用户按回车为止(回车字符也放在缓冲区中)。当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符,getchar函数的返回值是用户输入的第一个字符的ASCII码。如出错返回-1,且将用户输入的字符回显到屏幕,如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取。也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键。示例:#include<stdio.h>void main(){char c;//定义一个字符printf("input a character\n");c=getchar();&nbsp; //从键盘获取一个字符putchar(c);//输出字符}

DIEA

getchar();永远只向缓存中输入一个字符,在你举的例子中(9)步其实只是向缓存中存入的用户输入的第一个字母,正常说是f但在c中回车符也算个字符如果没有(11)再第二次循环中 (9)步向缓存中递交的并不是用户输入的字符而是用户第一次打入的回车符导致循环停止getchar();的用法很多;一种就是你这个程序用到的清空回车符 这种情况一般发生在在循环中涉及到输入的情况还有一种是某些编译平台(IDE)在运行程序时并没有在程序运行后给人看结果的时间 这时候 在程序最后加上getchar()就能造成程序的暂停 给程序员度结果的机会

Cats萌萌

main(){int c;while((c=getchar())!='\n')printf("%c",c);}这段程序的作用是读入一个字符后立即输出, 直到输入一个“换行”为止(从键盘输入一个字符,如果不是换行符就执行printf,在屏幕输出); 同时,注意从终端键盘向计算机输入时,是在按 ENTER 键以后才将一批数据一起送到内存缓冲区中去的。使用getchar函数还应注意几个问题:getchar函数只能接受单个字符,输入数字也按字符处理。输入多于一个字符时,只 接收第一个字符。使用本函数前必须包含文件“stdio.h”。在TC屏幕下运行含本函数程序时,将退出TC 屏幕进入用户屏幕等待用户输入。输入 完毕再返回TC屏幕。
随时随地看视频慕课网APP
我要回答