2017-02-20 3 views
-2

Помещение: Я использую CLion.Когда я открываю файл, ничего не будет отображаться - C++

Как я сказал в заголовке, когда я пытаюсь открыть файл (txt), ничего не будет отображаться. я не могу это объяснить, я не думаю, что я сделал ошибку, это довольно легко этот код:

#include <iostream> 
#include <cstdlib> 

using namespace std; 

int main() { 

FILE *leggi; 
leggi = fopen("lorem.txt", "r"); 

char datiLetti[1000]; 

while(fgets(datiLetti, 1000, leggi)!=NULL){ 
    cout << datiLetti << endl; 
} 

fclose(leggi); 


system("PAUSE"); 
return EXIT_SUCCESS; 
} 

файл «lorem.txt» находится в том же каталоге проекта. Спасибо заранее.

EDIT1: файл lorem не lorem_ipsum, моя ошибка, когда я набрал здесь.

+3

Проверка, если 'fopen' возвращает' NULL'. –

+1

Прежде всего, там * есть * текст в файле? Во-вторых, 'fopen' не подводит? В-третьих, почему бы вам не использовать стандартные потоки C++ и 'std :: string' для ввода? –

+5

Ваша программа, вероятно, работает в другой директории, чем каталог проекта. –

ответ

0

--- FIXED --- Установленная cygwig1.dll и cygstdC++ - 6.dll и положить cygwig в Glob переменных, то мой файл работал в том же каталоге основного и ехе. Однако, спасибо вам, ребята, за ваше время!

1

Вы хотите:

... 
FILE *leggi; 
leggi = fopen("lorem.txt", "r"); 

if (leggi == NULL) 
{ 
    cout << "Can't open file" << endl; 
    return 1; 
} 
... 
+0

Я бы рекомендовал использовать 'perror()', что может помочь указать, например, проблема с разрешениями. Скорее всего, что рабочий каталог не тот, о котором думает он. –

-1

Еорепа является C решением для открытого файла, если вы хотите, чтобы открыть файл в C++ использовать fstream как текущий код. fopen устарел в C++ 11.

#include <iostream> 
#include <fstream> 
#include <string> 

using namespace std; 

int main() { 
    string line; 
    fstream myfile; 
    myfile.open("example.txt"); 
    cerr << "Error: " << strerror(errno); 
    if (myfile.is_open()) 
    { 
     while (getline(myfile, line)) 
     { 
      cout << line << '\n'; 
     } 
     myfile.close(); 
    } 

    else cout << "Unable to open file"; 

    return 0; 
} 
+0

Я пробовал этот код, заменил example.txt моим файлом, но снова: Не удалось открыть файл. (я думаю, что в вашем коде мне нужно изменить только «example.txt») –

+1

Возможно, ваш путь неправильный или у вас нет разрешения на открытие этого файла. –

+0

мой код отредактировал, пожалуйста, попробуйте еще раз. –

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