[gelöst]C - Leerzeichen zählen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Tagedieb
Beiträge: 197
Registriert: 05.02.2006 20:26:18
Lizenz eigener Beiträge: MIT Lizenz

[gelöst]C - Leerzeichen zählen

Beitrag von Tagedieb » 05.09.2008 22:02:23

Code: Alles auswählen

#include <stdio.h>
#include <stdlib.h>

int main(void){
	FILE *infp;
	int c;
	int spaces = 0;
	
	//Prüfe ob die Datei geöffnet wurde
	infp = fopen("/home/micha/Desktop/count.txt", "r");
	if( infp == NULL ){
		printf("Fehler beim Öffnen der Datei\n");
		return EXIT_FAILURE;
	}
	else{
		printf("Datei erfolgreich geöffnet.\n");
		while( (c = fgetc(infp) != EOF))
			if( c == ' ')
			spaces++;
	}
	printf("Die Datei enthält %d Leerzeichen.", spaces);
	
	fclose(infp);
	return EXIT_SUCCESS;
}
Ich find den Fehler nicht ... Möchte aus einer einfachen Textdatei die Leerzeichen zählen...

Viele Grüße
Zuletzt geändert von Tagedieb am 05.09.2008 22:16:21, insgesamt 1-mal geändert.

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Re: C - Leerzeichen zählen

Beitrag von GoKi » 05.09.2008 22:12:34

Du musst auf die korrekte Klammerung achten.
Also hier der entsprechende Ausschnitt.

Code: Alles auswählen

 while( (c = fgetc(infp)) != EOF)
      if( c == ' ')
        spaces++;
Also (c = fgetc(infp)) != EOF statt (c = fgetc(infp) != EOF) als Bedingung in der While-Schleife.
MfG GoKi
:wq

Benutzeravatar
Tagedieb
Beiträge: 197
Registriert: 05.02.2006 20:26:18
Lizenz eigener Beiträge: MIT Lizenz

Re: C - Leerzeichen zählen

Beitrag von Tagedieb » 05.09.2008 22:15:47

Tausend Dank !!!
Das wars natürlich. Komm mit den Klammern immer wieder gerne durcheinander.
Viele Grüße

Antworten