2015-03-08 1 views
0

J'essayais de faire du C++ pour la première fois et je pensais créer un petit programme qui imprime simplement des lignes à partir d'un fichier. J'utilise l'IDE Clion et tout fonctionnait bien et ça a marché. Ensuite, hors de là où mon ordinateur se bloque et quand j'essaye de réexécuter le code, l'ifstream ne semble pas s'ouvrir. Voici le code:ifstream et ofstream ne fonctionnaient pas après un crash

#include <iostream> 
#include <fstream> 

using namespace std; 
    int main() { 
     ifstream file("hello.txt"); 
     cout << file.is_open() << endl; 
     string line; 
     while(getline(file, line)) cout << line << endl; 
     return 0; 
    } 

J'ai essayé de réinstaller Cygwin (pourrait ne pas avoir fait correctement, ne savent pas) et Clion mais sans aide. Edit: essayé de compiler le code via un site Web et cela a fonctionné mais quand je l'ai exécuté sur ma machine le fichier ne s'ouvre pas.

Édition 2: Clion me jouait des tours et a changé le répertoire de travail, après le réglage, tout fonctionne correctement. Résolu

+0

Vous n'avez peut-être pas d'autorisation d'écriture sur le fichier ou son répertoire. Essayez de changer le nom du fichier, et/ou de sortir le code d'erreur ('errno' pourrait l'avoir, sinon appelez' GetLastError() 'from' '). Le code 5 signifie l'accès refusé. –

+0

C'était Clion jouant des tours sur moi, pour une raison quelconque a changé le répertoire de travail à NULL. Bien réparé maintenant. – Teo

Répondre

-2
//Don't forget to include fstream 
    #include <fstream> 
    #include <iostream> 

    using namespace std; 

    int main() { 
     ifstream file("hello.txt"); 
    if(file.is_open()) 
    { 
    string line; 
    while(!file.eof()) //while we are not yet to the end of the file 
     { 
     getline(file, line) 
     cout << line << endl; 
     } 

    } 
    else 
     cout<<"File not opened \n"; 


    return 0; 
    } 
+0

J'avais inclus fstream, seulement oublié de copier le fichier entier. – Teo

+0

'while (! File.eof())' est la mauvaise façon de lire un fichier. 'getline' devrait être dans ce' while'. –

+0

'file.eof()' ne veut pas dire "nous sommes à la fin du fichier" –