【发布时间】:2011-12-19 06:11:21
【问题描述】:
我必须取可变数量的双精度值,然后是一个字符来结束双精度值的输入(被读入 inData 列表)。在此之后,我必须在 i 和 m 中输入 2 个整数。
问题是cin溢出了。
我必须对程序进行以下输入
0.594
0.928
0.515
0.055
0.507
0.351
0.262
0.797
0.788
0.442
0.097
0.798
0.227
0.127
0.474
0.825
0.007
0.182
0.929
0.852
e
2 5
为此,我的代码如下:
#include <iostream>
#include <list>
#include <cstdio>
using namespace std;
int main (void)
{ list <double> inData;
double temp;
int i, m, M, N;
char a;
while (cin >> temp)
{ inData.push_back(temp);
}
N = inData.size();
//fflush(cin);
//cin >> a;
cin.ignore(1);
cin >> i >> m;
cout << (int )a << " " << N << " " << i << " ABC " << m << endl;
return 0;
}
这有什么问题.. 请看看为什么它没有取 i 和 m 的值。 i 和 m 在 cout 行中给出垃圾值...
输出即将到来
-65 20 233304 ABC 213344
其中第 1、第 3 和第 5 个值是垃圾。
【问题讨论】: