Итак, у меня есть текстовый файл с двумя столбцами двойников с вкладкой между ними, и я пытаюсь прочитать их в 2 вектора. Моя первая проблема заключается в том, что он не проходит весь файл, а начинается в последней трети. Моя вторая проблема заключается в том, что, хотя он выполняет push_back, он конвертирует числа в некоторые другие числа ... я просто не могу разобраться с этим .. если я пытаюсь просто поместить их все в один строковый вектор, он работает без проблем, но они мне нужны как double или int для дальнейшей обработки
ifstream myfile("TextFile",ios::in);
if (!myfile)
{
cout << "Can't oppen" << endl;
system("pause");
return -1;
}
vector<long double> Datenx;
vector<long double> Dateny;
vector<string>lel;
string line;
while (getline(myfile, line)) {
// lel.push_back(line);
string numberx = line.substr(0, 12);
int pos = line.find(" ");
string numbery = line.substr(pos + 1, 12);
stringstream iss(numberx);
long double x = 0.0;
iss>> setprecision(10)>>fixed >>showpoint >> x;
//cout <<fixed<< numberx << endl;
//cout<<setprecision(10)<<fixed<< x << endl;
Datenx.push_back(x);
stringstream is(numbery);
long double y = 0.0;
is >> y;
Dateny.push_back(y);
}
for (int n = 0; n < 100; n++) {
cout << Datenx[n] << ' ' << endl;
}
// cout << fixed << Datenx[2] << ' ' << endl;
cin.get();
return 0;
Часть входного файла:
0.0000000000 0.0006536954
0.0000000100 0.0005515555
0.0000000200 0.0005004856
0.0000000300 0.0001327819
0.0000000400 0.0006945514
0.0000000500 0.0007864773
0.0000000600 0.0001327819
0.0000000700 0.0007354074
Вывод: вектор Datenx:
0
1e-08
2e-08
3e-08
...
Вывод: Dateny vector:
0.000653695
0.000551555
0.000500486
0.000132782
так что Dateny вроде как прав ... он вырезает последнюю цифру
и вектор Datenx совершенно неверен ..