Попробуйте использовать побитовый оператор ИЛИ при указании режима открытия.
infile.open ("input.txt", ios::ate | ios::in);
Параметр openmode является битовой маской. ios::ate
используется для открытия файла для добавления, а ios::in
используется для открытия файла для чтения ввода.
Если вы просто хотите прочитать файл, вы, вероятно, можете просто использовать:
infile.open ("input.txt", ios::in);
<ч />
Режим открытия по умолчанию для ifstream - ios :: in, так что теперь вы можете полностью избавиться от него. Следующий код работает для меня, используя g ++.
#include <iostream>
#include <fstream>
#include <cstdio>
using namespace std;
int main(int argc, char** argv) {
ifstream infile;
infile.open ("input.txt");
if (infile)
{
while (infile.good())
cout << (char) infile.get();
}
else
{
cout << "Unable to open file.";
}
infile.close();
getchar();
return 0;
}