2016-11-25 4 views
-2

Ich lese Daten aus einer kommagetrennten CSV-Datei. Ich möchte überprüfen, ob die Datei vor dem Lesen Daten enthält, und einen Fehler zurückgeben, wenn die Datei keine Daten enthält.Wie überprüft man, ob die CSV-Datei keine Daten enthält?

const char * Beispiel_Daten_Datei = "Beispiel_Daten1.csv"; std :: ifstream-Datei (Beispieldatendatei);

Danke!

+3

Mögliches Duplikat von [Nach einer leeren Datei in C++ suchen] (http://stackoverflow.com/questions/2390912/checking-for-an-empty-file-in-c) – sashoalm

+0

Ich habe das versucht, nicht Arbeit. std :: ifstream-Datei (Beispieldatendatei); \t if (datei.peek() == std :: ifstream :: merkmale_typ :: eof()) \t \t cout << "leere datei" << endl; – Steve

Antwort

-1

Überprüfen Sie die Größe der Datei beim Öffnen?

// reading a text file 
#include <iostream> 
#include <fstream> 
#include <string> 
using namespace std; 

int main() 
{ 

    ifstream myfile ("C:/temp/sample1.csv"); 

    // this gives you the number of bytes in the file. 

    if (myfile.is_open()) 
    { 
     long begin, end; 

     begin = myfile.tellg(); 
     myfile.seekg (0, ios::end); 
     end = myfile.tellg(); 

     if(end-begin == 0) 
     { 
      cout << "file is empty \n"; 

     } 
     else 
     { 
     cout << "size: " << (end-begin) << " bytes." << endl; 
     } 

     myfile.close(); 

    } 

    else cout << "Unable to open file \n"; 

    return 0; 
} 
+0

Wie mache ich das? – Steve

0

Ein einfacher Anruf stat wird Ihnen sagen, wenn die Datei leer ist. Das sollte ausreichen, um dein Problem zu lösen.

Verwandte Themen