2015-11-06 3 views
0

Я знаю, что есть тонна вопросов, относящихся к этой теме, но я не могу заставить это работать. Программа отлично работала на моем ноутбуке, но когда я пытаюсь ее компилировать и запускать в школьной лаборатории Linux, программа не может открыть файл. Я попытался определить абсолютную позицию файла, но ничего не сработало. Имя файла верное и все, но когда я пытаюсь запустить программу, он отображает «сбой». Я использую gedit и скомпилировал программу с bash.Я не могу прочитать файл .dat, используя fstream

ifstream fin("rainfall.dat");  // If the file cannot open display failed 
    if(fin.fail()){ 
    cout << "failed" << endl; 
    return 1; 
    } 
+0

У Вас есть разрешение на чтение файла? – clcto

+1

Если это единственная проблема (ну, пока, но это ваш вопрос), тогда нет необходимости включать все другие вещи. Если он не работает * без * и не работает * с *. Вы проверили это? См. [Как создать минимальный, завершенный, проверяемый пример] (http://stackoverflow.com/help/mcve). – usr2564301

+0

Да, да. И чтение, и запись. –

ответ

2

попробовать

#include <errno.h> 

    if(fin.fail()) 
     perror("open failed "); 

это даст вам читаемое сообщение для человека последней ошибки

+0

Хорошо, поэтому он говорит, что нет такого файла или каталога (который, как я понял, это то, что он сказал бы), но почему? Имя правильно rainfall.dat находится в правильном каталоге, и если я попытаюсь поместить весь путь к файлу, я получаю ту же проблему. –

+0

Я не знаю, что изменилось, но после удаления файла и повторной загрузки его программа работает. –

+1

Вернитесь в режим Идиота, чтобы убедиться, что ваш компьютер работает. 1. Создайте файл под названием 'a'. 2. Попробуйте эту программу (естественно, с правильным именем файла!). 3a. Если это работает, может быть какой-то странный символ в исходном имени. 3b. Если это не так, ваша система сломалась. (Пока я печатал). ... Кажется, это было 3a! – usr2564301

Смежные вопросы