Ошибка чтения TXT-файла C ++

0

У меня есть этот код, который предположил бы прочитать txt файл. Но по какой-то причине я всегда получаю *File not found что означает, что fileIn.fail() не удалось...

#include <iostream>
#include <string.h>
#include <fstream>
#include <sstream>
#include <stdio.h>


using namespace std;

int main ()
{
    string fileName;
    ifstream fileIn;
    bool x;

    cout << "enter file name \n";
    cin  >> fileName;

    fileIn.open(fileName);

    if(fileIn.fail())
    {
        cerr << "* File not found";
        return true;
    }

файл, расположенный в той же папке, что и файл main.cpp, и имя input.txt. Я попытался установить fileName жестко закодированным, но это также не сработало. Что не так с моим кодом?

вот проект:

Изображение 174551

  • 0
    То, что не может быть открыто, не означает, что его нельзя найти, могут быть и другие ошибки. Однако, когда вы запускаете свою программу, в какой папке вы находитесь относительно папки, где находится исполняемый файл (и файл, который вы хотите прочитать)? Вы в одной папке? В другой папке?
  • 0
    Я использую xcode (впервые), поэтому я не уверен, куда он помещает исполняемые файлы ... где мне их искать?
Показать ещё 5 комментариев
Теги:
stream

3 ответа

1
Лучший ответ

Вот контрольный список:

  1. У вас есть разрешения на чтение/доступ к файлу?
  2. Вы владелец файла? (Linux)
  3. Вы даете правильный путь, относительный или абсолютный из исполняемого файла?

Если ответ на любой из них - нет, тогда в этом проблема, а не просто ошибка "файл не найден".

--РЕДАКТИРОВАТЬ--

@VladIoffe исполняемый файл, который я вижу там, является qustion2 и относительный путь, который вы должны дать, это ../input.txt а не input.txt

  • 0
    Я использую Mac, и я не уверен, куда он помещает исполняемые файлы. любая помощь с этим?
  • 0
    ну, покажи мне свою структуру каталогов, может быть, скриншот, и я скажу тебе, где это. @VladIoffe
Показать ещё 6 комментариев
0

Абсолютный путь всегда будет работать. Но я ненавижу полный путь. Я предпочитаю относительный путь по простой причине: код более портативный. Если вы запустите свою программу с помощью input.txt в том же пути исполняемого файла, она будет работать. Но когда вы используете IDE, вы должны установить текущий каталог в настройках IDE.

0

Вы должны использовать абсолютный путь к имени файла.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню