#include<iostream>;
int main()
{
int a = 1;
int b = 2;
std::cin >> a >> b;
std::cout << a << "+" << b << "=" << a+b << std::endl;
return 0;
}
当我输入3 4
作为输入时,输出将是3+4=7
,好吧,这很奇怪; 但是当我输入a b
时,输出是0+0=0
(为什么它是0和0?); 最容易混淆的是,a 4
,它会是0+0=0
(为什么不是'0 + 4 = 4'?????); 然后我写另一个编。cin做什么时出现错误
#include<iostream>;
int main()
{
int a = 1;
int b = 2;
std::cin >> a;
std::cin.clear();
std::cin >> b;
std::cout << a << "+" << b << "=" << a+b << std::endl;
return 0;
}
当我进入a 4
,为什么它仍然0+0=0
?是不是应该0+4=4
?
感谢所有热心的!
我写了prog3,来测试当我不写int a=1;int b=2
时会发生什么;
2
#include <iostream>
using namespace std;
int main()
{
int a,b;
cin >> a ;
cin >> b;
cout<< a << "+"<< b <<"="<< a+b << endl;
return 0;
}
当a b
再次,它输出0+-1218170892=-1218170892
(为什么不是0+0=0
??)
输入的值预计是一个整数,而不是一个字符。输入“a”,“3.141”或“whatever”无效。如果你的输入是“a”,那么程序不会知道你已经使用“a”作为变量,而是想使用默认值。 – stefan
很明显,它是C++ 11,因为否则,值将是1和2,而不是0。 – Drise
要回答您的编辑:您尚未从输入中删除a。你需要'cin.clear(); cin.ignore(1);',这样第二次提取就会成功。 – Drise