满意答案
tinws
2014.04.19
采纳率:41% 等级:12
已帮助:4751人
语句3执行了,1+空格+2+回车,则1、2两个整数都进入缓冲区,不是12.
你可以输出一个换行就清楚了。
#include<iostream>using namespace std;
int main()
{
int a=0,b=0;
cin >>a; //语句1
cout <<a<<endl; //语句2
cin >>b; //语句3
cout <<b<<endl; //语句4
return 0;
}
判断合法性,如下:
#include<iostream>using namespace std;
bool IsInteger(char *str)
{
if(*str=='\0')
{
return false;
}
while(*str!='\0')/*如果字符串结束就跳出while循环*/
{
if((*str<'0')||(*str>'9'))/*判断字符是否是0-9以外的字符,是就返回false*/
return false;
str++;/*字符地址加1,这样下次*str里就是下一个字符了*/
}
return true;/*如果没有数字以外的字符,证明这个字符串是一个整型,就返回true*/
}
int main()
{
int a=0,b=0;
char str[50];
gets(str);
while(!IsInteger(str))
{
cout<<"非法输入,只能输入一个整数,请重新输入:";
gets(str);
}
a=atoi(str);
//cin >>a; //语句1
cout <<a<<endl; //语句2
cin >>b; //语句3
cout <<b<<endl; //语句4
return 0;
}
00分享举报