C语言: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;/*返回*/
}

第(11)行的getchar();有什么作用?有谁还能举几个关于getchar()用法的例子?

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();  //从键盘获取一个字符

putchar(c);//输出字符

}

扩展资料:

getchar

getchar由宏实现:#define getchar() getc(stdin)。getchar有一个int型的返回值。当程序调用getchar时.程序就等着用户按键。用户输入的字符被存放在键盘缓冲区中。

直到用户按回车为止(回车字符也放在缓冲区中)。当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符。getchar函数的返回值是用户输入的字符的ASCII码,若文件结尾(End-Of-File)则返回-1(EOF),且将用户输入的字符回显到屏幕。

如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取。也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完后,才等待用户按键。

getch

getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回,getch返回值是用户输入的ASCⅡ码,出错返回-1。

输入的字符不会回显在屏幕上.getch函数常用于程序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行。

getche

这个函数与前两上类似,功能也相近,都是输入一个字符,返回值同样是输入字符的ASCII码,但不同的是,此函数在输入后立即从控制台取字符,不以回车为结束(带回显)。

参考资料:getchar()百度百科

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2019-11-09

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 屏幕进入用户屏幕等待用户输入,输入            完毕再返回TC屏幕。

扩展资料:

getchar是读入函数的一种。它从标准输入里读取下一个字符,相当于getc(stdin)。返回类型为int型,为用户输入的ASCII码或EOF。

参考资料:getchar函数—百度百科

本回答被网友采纳
第2个回答  推荐于2017-10-08

    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);
       }

  4.  使用getchar函数还应注意几个问题:
       getchar函数只能接受单个字符,输入数字也按字符处理。输入多于一个字符时,只           接收第一个字符。
        使用本函数前必须包含文件“stdio.h”。
        在TC屏幕下运行含本函数程序时,将退出TC 屏幕进入用户屏幕等待用户输入。输入            完毕再返回TC屏幕。

第3个回答  推荐于2017-09-20
建议你去看看关于输入输出的资料,这也是c相对比较难的地方,
getchar();永远只向缓存中输入一个字符,
在你举的例子中(9)步其实只是向缓存中存入的用户输入的第一个字母,
正常说是f
但在c中回车符也算个字符
如果没有(11)
再第二次循环中 (9)步向缓存中递交的并不是用户输入的字符
而是用户第一次打入的回车符
导致循环停止
getchar();的用法很多;
一种就是你这个程序用到的清空回车符 这种情况一般发生在在循环中涉及到输入的情况
还有一种是某些编译平台(IDE)在运行程序时并没有在程序运行后给人看结果的时间 这时候 在程序最后加上getchar()就能造成程序的暂停 给程序员度结果的机会本回答被提问者采纳
第4个回答  推荐于2019-09-08
main()
{
int c;
while((c=getchar())!='\n')
printf("%c",c);
}

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