菜鸟问题 c++编程

来源:百度知道 编辑:UC知道 时间:2024/06/08 16:25:26
#include<iostream>
using namespace std;
int main()
{ char b;
cin>>b;
cout<<b<<endl;
int c;
unsigned int d;
long e;
unsigned long f;
cin>>c>>d>>e>>f;
cout<<c<<" "<<d<<" "<<e<<" "<<f<<" "<<endl;
double i;
float j;
long double k;
cin>>i>>j>>k;
cout<<i<<" "<<j<<" "<<k<<endl;
return 0;
}

当输入a 10 10u 10L 10uL时编译出错,为什么

输入a 10 10u 10L 10uL
读入顺序是
先读入a 输出a
再读入10 赋给c;
再读入10 赋给d;
再读入u 赋值给e出错,即输入流出错,并且一直到ijk都是处于错误状态
所以后面有没有cin>>i>>j>>k;都是一样的,也就是说efijk没有赋值,输出来的是随机的数字,一般情况下是很大的负数吧
这里你不能用加个字母u或L了,因为流不会区别,他只把它当字母看待

你输入方式出错了
输入如下:
a回车
10 10 10 10回车
10 10 10回车
这样就对了。

很长时间不用C++了,不过,这个问题应该是你将C++的数据类型与别的语言搞混了,C++的unsigned int ,long,unsigned long在表示时是不需要在数字后面加上“U”或“L”的。你可以输入a 10 10 10 10 试下。