Мне нужно взять переменное количество значений типа double, а затем символ, чтобы завершить ввод значений типа double (считываемых в список inData). После этого мне нужно ввести 2 целых числа в i и m.
Проблема в том, что 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-е значения - мусор.