PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : in C89 Anzahl von Zahlenwerte pro Zeile einlesen



sesam
24-01-2007, 09:23
Wie kann ich aus einer Textdatei, in der in mehreren Zeilen verschiedene Zahlen stehen (alle per Leerzeichen getrennt), die Anzahl bestimmen.

habe es mit "fscanf(fp,"%i", &anzahl);" versucht, geht aber nicht :-(

cdp_xe
24-01-2007, 10:13
Also für den Fall, dass es sich nur um Integer-Werte handelt ist die Sache recht einfach.

Zunächst -- dem Komfort wegen -- die Datei komplett in einen char [] Buffer einlesen. Die Dateigröße bekommst du mit fseek(fp,0,SEEK_END), ftell(fp). (aber nicht vergessen, mit fseek(fp, 0, SEEK_SET) wieder an den anfang der datei zu gehen, bevor du den inhalt in einen buffer schreibst).

Du läufst jede Zeile von vorn bis hinten durch. Wenn du auf ein Zeichen wie ' ', '\t' usw. triffst, unternimmst du nichts. Wenn du auf eine Zahl triffst, dann benutzt du dann jeweils mit:


int wert = atoi(speicher-adresse der position im buffer)

Anschließend gehst du soviele Zeichen vor, wie >= '0' und <= '9' sind.

--steffen

sesam
24-01-2007, 17:34
danke.
werde was draus machen :-)