🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fido.ger.c_echo
Article #6

fscanf

#6
From: Horst Kraemer
Date: Wed, 10 Sep 1997 00:00
44 lines
2096 bytes
Hallo Peter,

08 Sep 97  06:57:56, <Peter Schuette> to <Alexander Schon>:

 > AS> fprintf(stream, "%d\n", x);
 > AS> fprintf(stream, "%s\n", string1);
 > AS> fprintf(stream, "%s\n", string2);
 > AS> Nun dachte ich mir, dass das Lesen aehnlich funktionieren sollte:
 > AS> fscanf(stream, "%d", &x);
 > AS> fscanf(stream, "%s", string1);
 > AS> fscanf(strean, "%s", string2);

 > Das Lesen funktioniert auch genauso. Allerdings (ueber)liest fsanf NICHT
 > automatisch \n.

Doch, doch. Es ueberliest _nach_ Einlesen des Eingabeelements %... zwar nicht
den eventuell an den Daten _dranhaengenden_ white-space, dafuer aber beim
naechsten Eingabe-Element den gesamten _fuehrenden_ whitespace. (SPACE,'\n',
'\r','\f','\v','\t'). Ausnahme %c %[. Was normalerweise auf dasselbe
herauskommt - es sei denn man will scanf explizit _vor_ dem naechsten
Eingabeelement mit dem naechsten \n synchronisieren, a la Pascals 'readln'.
Dies kann man wohl mit

    fscanf(f,"%*[^\n]");  /* Vor dem naechsten '\n' stehenbleiben */

oder

    fscanf(f,"%*[^\n]%*c");  /* Naechstes '\n' weglesen */

erreichen <wuerg>. Ist manchmal nuetzlich, wenn eine Textzeile so aussieht

    4711 blabla 3.14

und man pro Zeile nur den fuehrenden int einlesen will.

   while ...
   fscanf(f,"%d%*[^\n]",array[i]);


cu
Horst

e-mail: horst.kraemer@berlin.snafu.de
Technical Details
Message-ID: <MSGID_2=3A2410=2F249.5=40fidonet_7e894d95@fidonet.org>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <MSGID_2=3A2452=2F260.25_d43b1118@fidonet.org>

Show Full Headers
Complete Article Headers
X-Google-Language: GERMAN,ASCII-7-bit
X-Google-Thread: 100a0f,635939d122be81b7
X-Google-Attributes: gid100a0f,public
From: Horst.Kraemer@p5.f249.n2410.z2.fidonet.org (Horst Kraemer)
Subject: fscanf
Date: 1997/09/10
Message-ID: <MSGID_2=3A2410=2F249.5=40fidonet_7e894d95@fidonet.org>
X-Deja-AN: 272306522
References: <MSGID_2=3A2452=2F260.25_d43b1118@fidonet.org>
X-FTN-Path: 2410/249 24/903 888 777 2480/2 13 843
X-Comment-To: (Peter Schuette)
X-FTN-Seen-By: 2480/300 412 843 861 3500 8013 2487/0 2490/2001 5001 2494/28 380
X-FTN-Tearline: FMail 1.02
X-FTN-Domain: Z2@fidonet
Organization: -= Berlin, tierra florida =-
X-Gateway: FIDO .. gamma.ray.camelot.de [FIDOGATE 4.1.5]
Newsgroups: fido.ger.c_echo