C语言:getchar函数的用法
(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() getc(stdin)。
2. getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.
3. 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屏幕。
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。 尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准
设循环体为putchar(c);
while((c=getchar())!='\n'){
putchar(c);}
输入为648152最后加个回车
判断
'6'!='\n'执行循环体
输出'6'
'4'!='\n'执行循环体
输出'4'
'8'!='\n'执行循环体
输出'8'
'1'!='\n'执行循环体
输出'1'
'5'!='\n'执行循环体
输出'5'
'2'!='\n'执行循环体
输出'2'
'\n'=='\n'退出循环
由于c语言区别两次输入的符号是空格
回车
或tab
所以当你在输入6之后不会立刻打印6
系统认为你一次输入还没结束
当你输入回车时输入结束
打印的时候就会把上面的一起打印(从堆栈)
屏幕上面就会又出现一行648152
一共两行
很有意思吧
在C语言开发中的getchar函数调用源码详解