Hallo zusammen
Ich möchte eine Textdatei (mit einem bestimmten Aufbau) einlesen und in eine interne Tabelle (Array) stellen. Der Aufbau einer Zeile in der Textdatei sieht so aus: {x};{y}
{x} stellt eine Menge von Zeichen dar, d.h. entweder einzelne Worte oder oder ein ganzer Satz. {y} stellt ebenfalls eine Menge von Zeichen dar, die sich hinter dem Semikolon ( befinden. Beispieldatei (analog EXCEL-CSV-Format):
Flugzeug;Fahrzeug für die Luft
Auto;Fahrzeug auf der Strasse
Nudeln;Nahrungsmittel
Diese Zeilen sollen in eine Tabelle (Array) übergeben werden. Nur leider habe ich das Problem, dass mit fscanf(infile, „%s“, s ) jedes Leerzeichen als Zeilenende interpretiert wird (steht so auch in der Doku).
Diese Zeilen sollen in eine Tabelle (Array) übergeben werden.
Nur leider habe ich das Problem, dass mit fscanf(infile, „%s“,
s ) jedes Leerzeichen als Zeilenende interpretiert wird (steht
so auch in der Doku).
Wer weiss eine Lösung?
Kannst Du kein C++ benutzen? Fscanf hat mich auch schon verschiedentlich zur Verzweiflung gebracht, verhaelt sich manchmal verdammt komisch. Also solltest Du C++ verwenden koennen: in der STL gibt es einige Klassen, die Dir helfen werden (string, ifstream …). Ich meine ifstream hat eine member funktion namens getline …
Vielen Dank für den Hinweis.
fscanf(input, „[^\n]\n“, temp) führte zu einer endlos-schleife.
ein % vor dem [^\n], dh fscanf(input, „%[^\n]\n“, temp) funktionierte dann einwandfrei.
Ok, ein Beispiel aus meinem Code. Die folgende Funktion gehoert zu einer Klasse, die Parameterfiles liest und auswertet. SmartString ist eine Klasse, die die standard C++ Klasse string um einige Funktionen erweitert. Fuer Deine Zwecke kannst Du SmartString durch string ersetzen. lines ist ein Member von Parfilereader und vom Typ vector (das C++ Aequivalent zu string x[…]). stats ist eine Klasse, die ueber die Ausgewerteten Files und aufgetretene Fehler Buchfuehrt.