Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Zeile nach Wort scannen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.04.2008, 20:07 Uhr
banshee



hallo zusammen,

also ich hab folgendes Problem, wobei Problem kann man nicht wirklich sagen, ich weiß, wie man es umsetzen könnte, aber ich will einen möglichst effizienten Weg (man will ja schließlich was lernen :P)

Ich habe also eine Datei mit Zeilen folgender Form:

s..s (s..s)*: s..s $f

s..s ist ein beliebiger String. ()* bedeutet beliebig oft (oder gar nicht) und f ist eine Kommazahl.

Ich suche jetzt ein bestimmtes Wort vor dem Doppelpunkt, nur wie stell ich das möglichst geschickt an?
Das einzige, was mir einfallen würde, wäre, mit fgets() zeichenweise durch die Zeile zu gehen und dann buchstabenweise zu überprüfen, ob das Wort schon voll ist, aber das erscheint mir extrem umständlich.
Gibts keine Funktion, die bei einem Space abbricht, sodass man jeweils ganze Worte einlesen kann?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.04.2008, 00:48 Uhr
~Kest
Gast


Hi!

Wenn ich dich verstanden habe, dann kannste einfach mit >fscanf(datei, "%s", buf) != EOF)< einlesen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
21.04.2008, 01:15 Uhr
0xdeadbeef
Gott
(Operator)


Zur Sicherheit noch die Feldbreite angeben, z.B.

C++:
char buf[100];

/* Feldbreite beinhaltet nicht den Sentinel, daher 99 statt 100 */
fscanf(datei, "%99s", buf);


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
21.04.2008, 10:38 Uhr
banshee



Funktioniert das auch, wenn ich vorher schon was aus der Datei gelesen habe? Also angenommen, ich hab einen header eingelesen und die Daten kommen dann erst nach 50 Zeilen, macht das fscanf dann da weiter oder fängt das wieder am Dateianfang an?

Ansonsten schonmal danke für den Tipp :>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: