[C] Nur die 1. Zeile einer .txt Datei auslesen.

C_Boy

Mitglied
Hallo,

der Titel sagt das ganze ja schon aus.
Geht das?
Kann man die while so verändert. Das es nur einmal in die while geht und dann nicht mehr?

MfG C_boy
 
Kann man die while so verändert. Das es nur einmal in die while geht und dann nicht mehr?

Warum eine Schleife, wenn du etwas nur einmal tun möchtest? ;-]

Wenn du unbedingt eine Schleife brauchst kannst du eine Bedingung einbauen, die nach einem Mal schon erfüllt ist:
C:
int i = 0;
while(i < 1)
{
   ...
   i += 1;
}
 
Danke!

Aber ich will ja danach ab der 2. Zeile bis zum eof(ende der datei) lesen.

Wie macht man das, dass ich dann ab der 2. Zeile beginne?
 
Nachdem du die erste Zeile erfolgreich ausgelesen hast, verwendest du einfach eine Schleife und liest die restlichen Zeilen aus... Ist doch irgendwie logisch, oder?! :confused:

Gruß
 
z.B:

C++:
fscanf(file,"%d",&zahl);

while(!feof(file1))
{
  fscanf(file,"%c",&zeichen)
}

Ich dachte wenn er wieder in die while reingeht liest er wieder von ganz von vorne?
 
Warum verwendest du fscanf? Ich dachte du wolltest zeilenweise auslesen? Dann mußt du fgets verwenden.

Du solltest nicht feof als Bedingung in der Schleife verwenden. Du solltest lieber prüfen ob deine Eingabeoperation geklappt hat.

Und deine Schleife liest grundsätzlich bis zum Ende der Datei, es wird nicht plötzlich wieder von vorn angefangen...

Gruß
 
Warum verwendest du fscanf? Ich dachte du wolltest zeilenweise auslesen? Dann mußt du fgets verwenden.

Mein Plan ist:
In der 1. Zeile steht eine Zahl z.b 70. Die lese ich so aus: fscanf(file,"%d",&zahl);
mit %d speichere ich ja "70" in zahl.
Und dann möchte ich ab der 2. Zeile weiter lesen und wenn mehr wie 70 Zeichen vorkommen will ich einen \n machen.

Und deine Schleife liest grundsätzlich bis zum Ende der Datei, es wird nicht plötzlich wieder von vorn angefangen...

Ja das ist mir schon klar, aber ich meinte den Sprung vom 1. fscanf in die while.
Da dachte ich mir das, dass fscanf(file,"%c",&zeichen) wieder von der 1. Zeile beginnt zum lesen und durch die while dann bis eof.
Ist das jetzt so?
 
Mein Plan ist:
In der 1. Zeile steht eine Zahl z.b 70. Die lese ich so aus: fscanf(file,"%d",&zahl);
Dabei kannst du dir aber nicht sicher sein, ob die Zahl auch wirklich in der ersten Zeile stand.
Und dann möchte ich ab der 2. Zeile weiter lesen
Dann mußt du grundsätzlich die erste Zeile überspringen. ([1])

Und du solltest immer prüfen ob deine Einleseoperation (sei es nun fgets, fscanf oder was auch immer) erfolgreich war.
und wenn mehr wie 70 Zeichen vorkommen will ich einen \n machen.
Das erledigt sich von selbst, wenn du fgets mit einer Puffergröße von 71 Zeichen verwendest und den gelesenen String wieder ausgibst.
Ja das ist mir schon klar, aber ich meinte den Sprung vom 1. fscanf in die while.
Da dachte ich mir das, dass fscanf(file,"%c",&zeichen) wieder von der 1. Zeile beginnt zum lesen und durch die while dann bis eof.
Nein, wie kommst du denn auf sowas? :confused:

Du hast natürlich durch das fscanf nicht unbedingt eine Zeile gelesen. Siehe [1].

Gruß
 
Zuletzt bearbeitet:
Zurück