Aus Datei lesen - Leerzeichen führt zu Zeilenumbruch



  • Hallo zusammen
    Ich soll Daten aus einer Datei lesen. Diese werden zeilenweise ausgelesen und danach verarbeitet. Geht soweit auch ganz gut. Nur wenn irgendwo in einer ZEile ein Leerzeichen steht, denkt er, dort sei die Zeile zu ende. Der Rest landet dann beim nächsten Durchlauf in der neuen Zeile. Wie kann ich das unterbinden?

    Hier mal der Code dazu:

    bool lies_daten_aus_datei(char * daten)
    {
    	// Handle, um die Datendatei anzusprechen,
    	//da wir zeilenweise lesen, lassen wir die Datei offen,
    	//static, damit wir die Information nicht verlieren !!
    	static FILE * fp= NULL;
    	int anzahlGeleseneElemente;					//beinhaltet den Rückgabewert von fscanf
    
    	//testen ob die Datei schon geöffnet ist (relevant für 1. Aufruf)
    	if (fp == NULL) { fp = fopen( KUNDENDATEI , "r"); }
    
    	//wenn Fehler aufgetreten ist false zurückgeben, damit der Aufrufer sauber terminieren kann!
    	if (fp == NULL) {
    		return false;
    	}
    
    	//eine Zeile lesen
    	//fscanf ist fehleranfällig - besser fscanf_s benutzen oder andere Lösung finden!
    	anzahlGeleseneElemente = fscanf(fp, "%s", daten);
    
    	//Wenn Dateiende erreicht ist, Datei schliessen und false zurückgeben.
    	if (anzahlGeleseneElemente == EOF ) {
    		fclose(fp);
    		fp= NULL;
    		return false;
    	}
    
    	//alles ok, also true zurückgeben
    	return true;
    }
    

    gibt es eine bessere Möglichkeit als fscanf?

    Vielen Dank schonmal 🙂

    mfg
    andré


  • Mod

    fread? fegts?


Anmelden zum Antworten