Я знаю, что это может быть легкой задачей, и, прочитав ответ на другие вопросы, я обнаружил, что этот код должен помочь
#include<fstream>
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
int main() {
const char* filename = "integral_wh.out";
std::ifstream inFile(filename);
// Make sure the file stream is good
if(!inFile) {
cout << endl << "Failed to open file " << filename;
return 1;
}
double n;
string word;
while(inFile >> word >> n){
cout << word;
cout << n;
}
return 0;
}
Текстовый файл, из которого я читаю,
Integral, Sample: Z/W + jets - ntp_Alpgen_Ztt.root 3.33645 +- 0.31588
Integral, Sample: Z/W + jets1 - ntp_Alpgen_Zmm.root 2.52853 +- 0.34243
Integral, Sample: Z/W + jets2 - ntp_Alpgen_Zee.root 7.97980 +- 0.70667
Integral, Sample: Z/W + jets3 - ntp_Wj_0.root 0.00000 +- 0.00000
Integral, Sample: Z/W + jets4 - ntp_Wj_1.root 0.67329 +- 0.48556
Integral, Sample: Z/W + jets5 - ntp_Wj_2.root 1.44122 +- 0.89388
когда я запускаю программу, она не может прочитать дабл, она ничего не делает cout
.
Я пробовал также с
while(inFile >> n){
cout << n;
}
и ничего не выводит. То, что я хотел бы получить, это отдельные числа, чтобы использовать их для операций, возможно, сохраняя их в парах, как
pair<double,double> alpgen = make_pair(3.33645,0.31588);
или что-то в этом роде.