Как ввести следующий ввод в C ++

Мне нужно взять переменное количество значений типа 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-е значения - мусор.

0
задан HostileFork 1 November 2011 в 06:01
поделиться