C++ getchar什么意思()函数的疑问

getchar()在C程序中的功能是接收一个字符,当我们在连续输入字符的时候getchar()会给你意想不到的效果。下面是net小伙做的一些测试:
首先看下面的这个程序:
1 #include&stdio.h&
2 #include&stdlib.h&
3 int main(void)
int a,b,c;
printf("please input num a:\n");
scanf("%d",&a);
printf("please input num b:\n");
scanf("%d",&b);
printf("please input num c:\n");
scanf("%d",&c);
printf("%d,%d,%d",a,b,c);
运行结果可想而知:
那么把int改成char之后会是神马结果呢?来看下一段代码:
1 #include&stdio.h&
2 #include&stdlib.h&
3 int main(void)
char a,b,c;
printf("please input num a:\n");
scanf("%c",&a);
printf("please input num b:\n");
scanf("%c",&b);
printf("please input num c:\n");
scanf("%c",&c);
printf("%c,%c,%c",a,b,c);
你能猜到运行结果是什么吗?
为什么会显示这样的结果?你猜到是什么原因了吗?
我们再来看一下源代码:程序连续接收了三个字符,在C中enter键代表一个换行符,所以当输入完a的值‘q’之后按下enter键,换行符立马被字符b接收了,然后程序再向下走,输入c的值‘w’。结果就会按顺序显示a,b,c的值,我们已经知道a='q',b='\n',c='w';所以结果就会显示两行。
如果我们加入getchar()会有什么结果呢?
我们再来看一下改进的程序:
1 #include&stdio.h&
2 #include&stdlib.h&
3 int main(void)
char a,b,c;
printf("please input num a:\n");
scanf("%c",&a);
getchar();
printf("please input num b:\n");
scanf("%c",&b);
getchar();
printf("please input num c:\n");
scanf("%c",&c);
printf("%c,%c,%c",a,b,c);
显示结果如下:
现在为什么会正常显示我们想要的结果呢?原因就是getchar()把enter键所表示的字符接收了,所以就会达到想要的效果了。
到现在你应该明白为什么会出现这种情况了吧!无非就是输入的规范问题,如果我们运行第二个程序,用另一种方法输入看看会是神马效果:
看到没?也可以获取想要的结果,但是程序并不是这么美观了,为什么会出现这种效果呢?
因为编译器规定输入的时候并不是立即回显,而是存到一个缓冲区里面。当遇到换行字符会释放缓冲区的数据,并清空缓冲区。
scanf()在读取数字时会跳过空格、制表符和换行符!
原文:http://www.cnblogs.com/ngnetboy/archive//2756534.html
C++中getchar()的使用方法
1 getchar()简介getchar()是C语言中的函数,C++中也包含了该函数。getchar()函数的作用是从标准的输入stdin中读取字符。也就是说,getchar()函数以字符为单位对输入...
getchar()函数的作用
1、清除回车符
2、查看程序中间结果
3、一次向缓存读入一个字符
4、getchar()是缓存输入函数,从键盘输入多个字符时: 将所有字符保存在键盘缓存区,直到遇到回车
C\C++中getchar()函数
函数名: getchar
功 能: 从stdio流中读字符
用 法: int getchar(void);
getchar有一个int型的返回值.当程序调用getchar时....
getchar()详解
getchar  函数名: getchar  功 能: 从stdin流中读字符  用 法: int getchar(void);  注解:  getchar有一个int型的返回值.当程序调用getch...
C++ getchar()函数
getchar函数功能:
从stdio流中读字符,相当于getc(stdin),它从标准输入里读取下一个字符。返回类型为int型,返回值为用户输入的ASCⅡ码,出错返回-1。
具体说明:
...
C/C++ 误区五:char c = getchar();
许多初学者都习惯用 char 型变量接收 getchar、getc,fgetc 等函数的返回值,其实这么做是不对的,并且隐含着足以致命的错误。getchar 等函数的返回值类型都是 int ...
【C++】getchar putchar的用法
getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getcha...
getchar、getch区别与用法 .
getchar()和getch()的问题一直困扰着大家,关于他们的区别也是众说纷纭,可没有一种说法是详细、深入的,今天我就在前人已有的成果上,试着与大家继续探讨下这个问题:
先看看规范点的说法:...
C++字符输入getchar()和字符输出putchar()
C++还保留了C语言中用于输入和输出单个字符的函数,使用很方便。其中最常用的有getchar函数和putchar函数。
putchar函数(字符输出函数)
putchar函数的作用是向终端输出...
c++getchar()
C++中的输入输出函数
cin、cin.get()、cin.getline()、getline()、gets(),getchar
C++程序...
没有更多推荐了,C++ 什么时候用getchar()?_百度知道
C++ 什么时候用getchar()?
头文件略intmain(){cin&&n;for(n--&&getline(cin,s);){……}……}会把n读入进for(初以为因为是getline不是cin),但是后来又遇到cin也是同样的错误。如问题所问。另外,如...
头文件略int main(){cin&&n;for(n--&&getline(cin,s);){……}……}会把n读入进for(初以为因为是getline不是cin),但是后来又遇到cin也是同样的错误。如问题所问。另外,如果改用printf读入也要getchar()吗?
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
getchar的作用是到输入缓冲区读数据,只读一个字节而你如果加上c=getchar();//测试中只要少了这段就不必要再加1个getchar()停留cout&&c&&在你输入这个char c时 是不是要输入一个字符,然后回车,这个字符被c=getchar获取到了,并赋值给c但是还有一个回车存在了输入buffer里面所以在下面你要停住的时候,第一个getchar就获取到了这个回车 无法达到停住的效果停留窗口,getchar是个不错的方法,保险起见,可以先清空输入buffer或者用getch函数如果是windows可以用system(&pause&) 这个方法很流行
为你推荐:
其他类似问题
您可能关注的内容
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。getchar函数功能:
从stdio流中读字符,相当于getc(stdin),它从标准输入里读取下一个字符。返回类型为int型,返回值为用户输入的ASCⅡ码,出错返回-1。
具体说明:
1.从缓冲区读走一个字符(相当于清除缓冲区);
2.前面的scanf()在读取输入时会在缓冲区中留下一个字符'\n'(输入完s[i]的值后按回车键所致),所以如果不在此加一个getchar()把这个回车符取走的话,gets()就不会等待从键盘键入字符,而是会直接取走这个“无用的”回车符,从而导致读取有误;
3. getchar()是在输入缓冲区顺序读入一个字符(包括空格、回车和Tab)
getchar()使用不方便,解决方法:
(1)使用下面的语句清除回车:
while(getchar()!='\n');
(2)用getche()或getch()代替getchar(),其作用是从键盘读入一个字符(不用按回车),注意要包含头文件&conio.h&
函数用法:
该函数声明在stdio.h头文件中,使用的时候要包含stdio.h头文件。如:
#include&stdio.h&
int getchar(void);
例如下面程序:
&span style="font-size:14"&#include &iostream&
#include&stdio.h&
int main()
while ((c=getchar())!='\n')
if ((c &='a' && c&='z') || c &='A' && c&='Z')
if(c&'Z' && c&='Z'+4 || c&'z')
std::cout &&
std::cout && std::
实现功能:
为使电文保密,往往按一定规律将电文转换成密码,收报人再按约定的规律将其译回原文。例如,可以按以下规律将电文变成密码:将字母A变成字母E,a变成e,即变成其后的第4个字母,W变成A,X变成B,Y变成C,Z变成D。见图3.20,字母按上述规律转换,非字母字符不变,如"Wonderful!"转换为"Asrhivjyp!"。
C++中getchar()的使用方法
1 getchar()简介getchar()是C语言中的函数,C++中也包含了该函数。getchar()函数的作用是从标准的输入stdin中读取字符。也就是说,getchar()函数以字符为单位对输入...
C++之getch(),getche(),getchar()的区别
转载自:http://www.360doc.com/content/11/70.shtml
函数名:getchar()
C/C++ 误区五:char c = getchar();
许多初学者都习惯用 char 型变量接收 getchar、getc,fgetc 等函数的返回值,其实这么做是不对的,并且隐含着足以致命的错误。getchar 等函数的返回值类型都是 int ...
【C++】getchar()有什么用
getchar()在C程序中的功能是接收一个字符,当我们在连续输入字符的时候getchar()会给你意想不到的效果。下面是net小伙做的一些测试:
首先看下面的这个程序:
C++字符输入getchar()和字符输出putchar()
C++还保留了C语言中用于输入和输出单个字符的函数,使用很方便。其中最常用的有getchar函数和putchar函数。
putchar函数(字符输出函数)
putchar函数的作用是向终端输出...
C\C++中getchar()函数
函数名: getchar
功 能: 从stdio流中读字符
用 法: int getchar(void);
getchar有一个int型的返回值.当程序调用getchar时....
c getchar() 函数的使用注意 、换行符的处理
getchar() 是从控制台接收字符,注意只会接收一个字符
char ch = getchar();
如果在控制台输入 qwer的时候,
ch的值只接收 'q'
C++基础:各种输入方法总结,cin、cin.get()、cin.getline()、getline()、gets()、getchar()
在C++中,各种输入方法还是不少的,而且各有所异,本文做一点简要。
C++中为什么有时候会出现使用cin后在再使用getchar()会没有用
C++中为什么有时候会出现使用cin后在再使用getchar()会没有用?
比如下面这个程序:
int main(){
【C++】getchar putchar的用法
getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getcha...
没有更多推荐了,关于C/C++中getchar()的具体用法及注意事项
[问题点数:20分,结帖人Heaven_C]
本版专家分:6
结帖率 88.89%
CSDN今日推荐
本版专家分:153
本版专家分:50
匿名用户不能发表回复!
其他相关推荐用getchar函数读入两个字符给c1,c2,分别用putchar和printf输出这两个字符。思考以下问题:(1)变量c1和c2定义为字符型还是整型?或二者皆可?(2)要求输出c1和c2的ASCII码,应如何处理?(3)整形变量和字符变量是否在任何情况下都可以互相代替?char c1, c2;和int
c1, c2;是否无条件等价?程序:#include&stdio.h&int main(){ char c1, c2; printf("请输入两个字符c1,c2:");//输入的两个字符之间没有空格,连续输入 c1 = getchar(); c2 = getchar(); printf("用putchar输出结果为:"); putchar(c1); putchar(c2); printf("\n"); printf("用printf输出结果为:"); printf("%c %c\n",c1,c2); /*printf("%d,%d\n", c1, c2);*/ return 0;}结果:请输入两个字符c1,c2:ab用putchar输出结果为:ab用printf输出结果为:a b请按任意键继续. . .注意:输入的两个字符之间没有空格,连续输入。如果分两行输入a,b,则:请输入两个字符c1,c2:a用putchar输出结果为:a 用printf输出结果为:a 请按任意键继续. . .输入a后按回车键,结果还未来得及输入b,程序马上输出了其下4行结果(包括2个空行)。用putchar输出c1,就输出了字符a,在输出c2时,就把换行符转换为回车和换行两个操作,输出一个换行,后面的printf("\n");又输出一个换行,所以就相当于输出一个空行,此行不显示任何字符。后面用printf函数输出c1和c2,同样也输出了字符a和一个空行。下面回答问题:(1)c1和c2可以定义为字符型或整型,二者皆可。(2)用printf函数输出,使用%d格式符,即:printf("%d,%d\n", c1, c2);结果为:97,98(3)字符变量占1个字节,整型变量占2或4个字节。故整型变量在可输出字符的范围内(ASCII码为0到127之间的字符)是可以与字符型数据互相转换的。如果整数在此范围外,不能代替。拓展延伸:程序1:#include&stdio.h&int main(){ int
c1, c2; printf("请输入两个整数c1,c2:"); scanf("%d,%d", &c1, &c2); printf("按字符输出结果为:\n"); printf("%c,%c\n", c1, c2); printf("按ASCII码输出结果为:\n"); printf("%d,%d\n", c1, c2); return 0;}结果:请输入两个整数c1,c2:97,98按字符输出结果为:a,b按ASCII码输出结果为:97,98请按任意键继续. . .程序2:#include&stdio.h&int main(){ char c1, c2; int i1, i2; printf("请输入两个字符c1,c2:"); scanf("%c,%c", &c1, &c2); i1 = c1; i2 = c2; printf("按字符输出结果为:\n"); printf("%c,%c\n", c1, c2); printf("按整数输出结果为:\n"); printf("%d,%d\n", c1, c2); return 0;}结果:请输入两个字符c1,c2:a,b按字符输出结果为:a,b按整数输出结果为:97,98请按任意键继续. . .程序3:#include&stdio.h&int main(){ char c1, c2; int i1, i2; printf("请输入两个整数i1,i2:"); scanf("%d,%d", &i1, &i2); c1 = i1; c2 = i2; printf("按字符输出结果为:\n"); printf("%c,%c\n", c1, c2); printf("按整数输出结果为:\n"); printf("%d,%d\n", c1, c2); return 0;}结果:请输入两个整数i1,i2:289,330按字符输出结果为:!,J按整数输出结果为:33,74请按任意键继续. . .整型变量i1和i2在内存中占2或4个字节,而字符变量c1,c2只占一个字节,unsigned char类型可存放0到255的范围内整数,signed char类型可存放-128到127的范围内整数,现在输入的i1和i2的的值已经超过0到255的范围,i1和i2在内存中的存储情况如下表所示:(为简单起见,用两个字节表示)高8位低8位i1i2数据是整数74,是字符i1低8位的数据是整数33,是字符’!’的ASCII码值,故用字符输出c1得到字符’!’,i2低8位的’j’的ASCII码值,故用字符输出c1得到字符’j’。本文出自 “” 博客,请务必保留此出处
扫码向博主提问
非学,无以致疑;非问,无以广识
擅长领域:
getchar函数的用法
一、概念:
getchar 由宏实现:#define getchar() getc(stdin)。getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符...
【C语言】getchar函数 读入并输出任意长度字符串
主题来自 《C与指针》1.8.2:
编写一个程序,由控制台输入一个任意长度的字符串,标准输出读出该字符串。
定义一个字符串,使用字符串输入函数,输入字符串,再使用字符串输出函数输出...
/*只用getchar函数读入一个整数,假设它单独占据一行
读到行末为止,包括换行符,输入的数保证可以存到int中
**auhtor:@zk
用getchar函数读入两个字符给c1,c2,然后用putchar函数输出这两个字符。
#include &stdafx.h&
&em&用getchar函数&/em&输入一串&em&字符&/em&,依次&em&读入&/em&。当&em&字符&/em&不等于换行符\\n时用while循环和条件语句统计个数。a,b,c,d相当于计数器,分别存放字母、空格、数字、和其他&em&字符&/em&的个...
用getchar和%C输入字符型数据
标签(空格分隔): C 双学位高级语言程序设计 C输入输出
getchar函数的输入模式,是以回车键为结束标志,将回车之前的所有数据都放入缓冲区中,每进行...
有关C语言的字符输入和字符输出。
C语言getchar函数
在看C程序设计语言,顺便跑了一下书上的例子
while((c=getchar())!=EOF)
//printf(&this is a test&);
getchar和scanf的区别
scanf可以一次按照设定的输入格式输入多个变量数据.如
char str[20],
scanf(&%d%f%s&,d,f,str);
getchar()只能输入字符...
NDK探究之旅《三》—C语言的输入输出函数
NDK探究之旅:NDK探究之旅《一》——对jni和NDK的认识NDK探究之旅《二》——C语言的基本认识有关于java的输入输出函数:C语言的输出函数:我们先来看一下printf函数
printf()函...
没有更多推荐了,

我要回帖

更多关于 getchar什么意思 的文章

 

随机推荐