Ваша главная проблема - рабочий каталог.
Поскольку вы указываете файл, используя относительный путь, он ищет файл из текущего рабочего каталога. Рабочий каталог может быть указан вашей средой разработки. (Примечание: рабочий каталог не обязательно является тем же каталогом, в котором находится исполняемый файл (это распространенное предположение для начинающих, но оно применимо только в особых случаях)).
Хотя у вас есть специальный конец входного маркера «0», вы также должны проверить, что getline () не дает сбоя (так как это может привести к ошибкам по другим причинам (включая форматированный ввод). Поэтому обычно лучше всего проверьте состояние файла при его прочтении.
int main()
{
string line;
ifstream inputFile;
inputFile.open("input.txt");
while((getline(inputfile, line)) && (line != "0"))
{
// loop only entered if getline() worked and line !="0"
// In the original an infinite loop is entered when bad input results in EOF being hit.
cout << line << endl;
}
if (inputfile)
{
cout << line << endl; // If you really really really want to print the "0"
// Personally I think doing anything with the termination
// sequence is a mistake but added here to satisfy comments.
}
return 0;
}