2016-05-05 11 views
-1

Ich habe ein Programm, das eine Datei aus einer Anzahl in seinem dezimal, hexadezimal und oktal Form erstellt:Wie kann ich eine Datei lesen, die ich im selben Programm erstellt habe, C++?

int main() 
{ 
    int i; 
    cout << "Enter number" << endl; 
    cin >> i; 
    system("pause"); 
    CreateFile(i); 
    ShowFile(); 
    return 0; 
} 

void CreateFile(int i) 
{ 
    ofstream file("file.txt", ios::app); 
    file << "--------------------------------\n"; 
    file << "Number in decimal is:" << i << "\n"; 
    file << hex << setiosflags(ios::uppercase); 
    file << "Number in hex is:: " << i << "\n"; 
    file << dec << resetiosflags(ios::showbase); 
    file << oct << setiosflags(ios::uppercase); 
    file << "Number in octal is: " << i << "\n"; 
    file.close(); 
} 

jedoch Ich weiß nicht, wie es zu lesen in der Konsole:

void showFile() 
{ 
    int open; 
    ifstream file("file.txt", ios::in); 
    while (!file.eof() == false) { 
     file >> open; 
     cout << "The number is " << open << endl; 
    } 
} 

Wie kann ich es öffnen?

+0

'while (! Archivivo.eof() == false)' also wollen Sie die Datei nur lesen, wenn EOF erreicht ist? Beachten Sie auch, dass "archivo" nicht im gebuchten Code deklariert ist. – MikeCAT

+0

All das macht keinen Sinn. Sie schreiben etwas Text in Ihre Ausgabedatei und möchten dann eine einzelne Zahl daraus lesen? Dies erfordert ein ausgefeilteres Parsen. –

+0

Bitte prüfen Sie [Warum wird iostream :: eof innerhalb einer Schleife als falsch angesehen?] (Http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-sidered-wrong) . –

Antwort

2

Sie öffnen es genau so, wie Sie es getan haben.

Ihr Problem ist nicht das Öffnen der Datei, sondern das Lesen der Datei. Du hast die Datei gut geöffnet. Du kannst es einfach nicht richtig lesen, dein Problem ist etwas anderes. Sie haben tatsächlich zwei Probleme:

1) Sie sind nicht checking for the end-of-file condition correctly.

2) Sie haben mehrere Zeilen Text in die Datei geschrieben. Aber der Code, der die Datei irgendwie unerklärlicherweise liest, erwartet, dass die Datei nur Zahlen enthält und nicht den gesamten Text, den Sie darin geschrieben haben.

Es gibt auch ein drittes Problem: Code-Einrückung. Wenn Sie wissen, wie Sie Code richtig einrücken, verbessert dies die Lesbarkeit und hilft häufig bei der Suche nach Fehlern.