2016-10-17 5 views
0

In einem hypothetischen Szenario weiß ich nicht, wie viele Elemente die Datei sind. Welche Art von Schleife würde ich verwenden, um die Elemente in der Datei zu lesen, bis die Datei endet? Code, mit dem ich gerade arbeite, ist unten.Welche Art von Schleife verwende ich zum Lesen einer Datei?

#include <iostream> 
#include <fstream> 
using namespace std; 

int main() 
{  
    ifstream inputFile; 
    int num; 

    inputFile.open("TenNos.txt"); 
    cout << "Reading data from the file. \n"; 
    inputFile >> num; 
    cout << num << endl; 
    return 0;  
} 
+0

Verwenden Sie eine Weile, da Sie nicht wissen, wie viele Iterationen auftreten werden. –

Antwort

1
while (inputFile >> num) 
{ 
    cout << num << endl; 
} 

Will und Druck int s aus einer Datei lesen, bis er etwas findet, das nicht ein int, die Datei endet, ist die Datei nicht geöffnet ist, oder die Datei für eine beliebige Anzahl unleserlich gemacht aus anderen Gründen.

Durch die Überprüfung der various state flags documented here können Sie feststellen, warum der Messwert gestoppt wurde.

More in std::istream in general. Und eine Seite auf operator bool explaining how and while (inputFile >> num) works.

Wenn nach ein Fehler erkannt wird, möchten Sie reinigen und weiter, stellen Sie sicher, you read clear() und ignore()

1

Sie fstream hinzufügen sollten in der Lage sein, Dateien zu lesen, dann eine while-Schleife verwenden, die den Inhalt der liest Datei bis zum Ende.

#include <fstream> // for files 
#include <iostream> // printing on screen by default 

int main() 
{ 
    ifstream inputFile; 
    int num; 

    inputFile.open("TenNos.txt"); 
    cout << "Reading data from the file. \n"; 

    while(inputFile >> num) 
     cout << num << endl; 

    return 0; 
} 
+0

@ user4581301 was ist, wenn das Öffnen fehlschlägt? – Raindrop7

+0

Dann ist der Stream nicht lesbar und 'while (inputFile >> num)' nicht eingeben. – user4581301

+0

oh ja das habe ich nicht bemerkt! Danke – Raindrop7

Verwandte Themen