
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()里呢,麻烦说明白点. 展开
#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()里呢,麻烦说明白点. 展开
2个回答
展开全部
首先 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,当输入流为空时,等待用户输入,但是当输入流不为空时,直接从输入流读入(这种情况多半是上一轮的输入时,用户多输入了字符或者上一次输入有错误)
楼主好好了解一下输入流输出流吧。有问题可以继续讨论。
所以 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,当输入流为空时,等待用户输入,但是当输入流不为空时,直接从输入流读入(这种情况多半是上一轮的输入时,用户多输入了字符或者上一次输入有错误)
楼主好好了解一下输入流输出流吧。有问题可以继续讨论。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询