Очень простой файл ввода / вывода - PullRequest
1 голос
/ 25 апреля 2011

Всякий раз, когда я пытаюсь открыть файл с помощью istream, он не открывается (is_open () возвращает false).Существует ли конкретный каталог, в который необходимо поместить файл для доступа к нему (он находится в выходном каталоге проекта)?

ifstream ifile;
ifile.open("test.txt");
if(!ifile.is_open()){
    cout << "The file could not be opened." << endl;
}
cin.get();

Ответы [ 4 ]

4 голосов
/ 25 апреля 2011

Должен быть в «рабочем каталоге» программы.Это либо каталог, в котором вы находитесь при запуске программы, либо, если вы используете IDE, например Visual Studio, каталог проекта (каталог, который также содержит папки выпуска и / или отладки сборки).

2 голосов
/ 25 апреля 2011

Я работаю на машине с Linux, и файл test.txt в том же каталоге, что и бинарный файл, всегда работает.Итак, если исполняемый файл для вашего проекта называется a.out, то следующие два шага должны заставить его работать:

  1. Убедитесь, что test.tx t находится в том же каталоге, что и a.out
  2. Проверьте для permissions на test.txt и whether it exists.
2 голосов
/ 25 апреля 2011

Вам необходимо указать правильный путь к файлу. Я не знаю, какова структура вашего проекта, но что-то вроде:

ifile.open("output/test.txt");
1 голос
/ 25 апреля 2011

Попробуйте изменить эту строку ifile.open ("test.txt");-> ifile.open ("/ test.txt");

ifstream ifile;
ifile.open("/test.txt");
if(!ifile.is_open()){
    cout << "The file could not be opened." << endl;
}
cin.get();
...