c++getchar()函数问题

编写如下的程序:#include<iostream>usingnamespacestd;intmain(){charc;c=getchar();getchar();put... 编写如下的程序:
#include<iostream>
using namespace std;
int main()
{
char c;
c=getchar();getchar();
putchar(c+32);putchar('\n');
cout<<getchar()<<getchar()<<endl;
return 0;
}
输入A,回车(Enter),再输入a,回车;
最后结果显示为
A
a
a
1097
请问为什么最后的数字是1097不是9710?
再有,写一下一段程序:
#include<iostream>
using namespace std;
int main()
{
char c;
c=getchar();
putchar(c+32);putchar('\n');
cout<<getchar()<<getchar()<<endl;
return 0;
}
同样A,回车,a,回车,为什么最后显示的数字是9710?
是不是输入回车相当于输入了\r\n?
最后,请问getchar()函数吃回车究竟是怎么吃?
麻烦告诉各位高手指点一下我这个菜鸟,最好能从两个程序中缓冲区的数值来说明,谢谢!!
展开
 我来答
L_o_o_n_i_e
推荐于2018-04-12 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5190万
展开全部
getchar()函数 就是从输入缓冲区读一个字符,再转换成 int 型 数值。
9710,1097 是 cout 输出语句 问题。
如果你 加上一个换新行就不会混淆了:

cout << getchar()<< endl;
cout << getchar()<< endl;

回车 -- 打入Enter 键,getchar() 得到的是"\n", 转ASCII值 十进制 10
97 是 "a" 的 ASCII值。
==================================
第2个程序,你只有 3 个 getchar() 。读到的是:
"A","\n","a"
输出 "\n","a"
第1个程序,你有 4 个 getchar() 。读到的是:
"A","\n","a","\n"
输出 "a","\n"
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式