c++ 的getchar() 的问题 急

大家看下这个函数#include<iostream.h>#include<stdio.h>voidshuru(){cout<<"现在在shuru()函数里"<<endl;... 大家看下这个函数
#include <iostream.h>
#include <stdio.h>

void shuru()
{
cout<<"现在在shuru()函数里"<<endl;
char ch_1;
ch_1=getchar();
cout<<ch_1<<"ADAADFADF";
}

void main()
{
char ch_2;
for(;;)
{
cout<<"现在在主函数里"<<endl;
shuru();
cout<<"继续,请输入Y"<<endl;
cin>>ch_2;
if(ch_2!='Y')
return;
}
}
按道理,循环一次后,等待输入Y后再到shuru()函数里等待输入ch_1,但是事实却不是这样,输入Y后直接跳过shuru()函数,等待输入Y,为什么啊,老大们帮帮忙哦.
那么怎么样才能让他正常的到shuru()里呢,麻烦说明白点.
展开
 我来答
踏破铁网无觅处
2007-05-08 · 超过65用户采纳过TA的回答
知道答主
回答量:178
采纳率:100%
帮助的人:0
展开全部
首先 getchar() 返回一个 int 类型
所以 void shuru()
{
cout<<"现在在shuru()函数里"<<endl;
char ch_1; // should be defined int type
ch_1=getchar();
cout<<ch_1<<"ADAADFADF";
}

第二点: cin >> ch_2; 这个语句只是从输入流中得到一个字符 赋值给 ch_2,当输入流为空时,等待用户输入,但是当输入流不为空时,直接从输入流读入(这种情况多半是上一轮的输入时,用户多输入了字符或者上一次输入有错误)

楼主好好了解一下输入流输出流吧。有问题可以继续讨论。
百度网友109d3f065
2007-05-08 · TA获得超过167个赞
知道小有建树答主
回答量:471
采纳率:0%
帮助的人:210万
展开全部
当你输入一个字符后回车 getchar() 会把回车也当做一个字符 所以相当于你输入了2个字符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式