Первоначально пытался прочитать данные, используя char *, но переключился на строковую причину, получая поведение, как если бы отсутствовал нулевой терминатор. сделал проблему минимальной ниже, но все еще получаю очень странный вывод
int main(int argc, char * argv[]){
// file one: flightData
std::ifstream inFile1(argv[1]);
if (!inFile1.is_open())
{
std::cout << "Could not open the file 1." << std::endl;
return -1;
}
// file two: flightPlans
std::ifstream inFile2(argv[2]);
if (!inFile2.is_open())
{
std::cout << "Could not open the file 2." << std::endl;
return -1;
}
//File three: output
std::ofstream outputfile(argv[3]);
if (!outputfile.is_open())
{
std::cout << "Could not open the output file" << std::endl;
return -1;
}
std::string buffer;
getline(inFile1, buffer);
std::cout<<buffer<<std::endl;
while (getline(inFile1, buffer)) {
std::cout<<buffer;
std::cout<<"help";
}
// flightPlanner system(inFile1);
// system.printF();
// system.planFlights(inFile2,outputfile);
return 0;
}
вывод равен
4
helpDallas|Austin|50|50help
, что я почти уверен, что это неправильно, интересно, когда я добавляю endl в буфер cout, это дает мне вывод, я бы ожидал не совсем уверен, что происходит
inFile1
4
Dallas|Austin|50|50
Dallas|Austin|50|50
Dallas|Austin|50|50
Dallas|Austin|50|50
Когда я запускаю в отладчике, я получаю вывод я ожидаю:
4
Dallas|Houston|50|50
helpDallas|Houston|50|50
helpDallas|Houston|50|50
helpDallas|Houston|50|50help
любая идея что может происходить?