Matrix aus Textdatei einlesen (C++) ?!?

Mandel

Neuling
Thread Starter
Mitglied seit
08.12.2007
Beiträge
459
Hallo zusammen...

Ich versuche mir gerade etwas C++ beizubringen (brauch das leider :hmm:).
Das erste Problem welches mich irgendwie etwas überfordert ist folgendes:

Ich habe eine Textdatei. In dieser ist sozusagen eine Matrix drin. Die einzelnen Zahlen in einer Zeile sind durch Tabulatoren getrennt. Am Ende einer Zeile ist ein Zeilenumbruch, welcher in die neue Zeile führt.
Das ganze sieht dann ungefähr so aus:
Code:
12,3   17,0   22,7
11,4   17,9   12,9
Nur mit dem Unterschied, dass meine Matrix 736x555 groß ist :cool:
Das ganze soll dann also in einem Array(?!) landen. "Matrix[736][555]" wäre dann doch dafür der richtige C++-Ausdruck, oder?

Ich würde mich sehr über etwas Hilfe freuen :)
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Matrix[736][555] ist schon ein guter Ansatz - zumindest der Speicherplatz wäre dann reserviert ;)

Anschließend musst du die Daten "nur" noch in das Array bekommen :d
 
der nächste schritt wäre dann wohl das ganz in nen stream zu laden und in nen string zu packen. Den String kannst du dann relativ leicht auseinanderfriemeln und ins array laden. Bin aber leider in c++ net so bewandert
 
Naja... Genau den Teil brauch ich sozusagen...
"Lies die Datei - schreibe diese Zahlen ins Array", dies bräuchte ich in C++ :angel:
 
Was heißt "das bräuchtest du"? Vorkauen bzw. vorprogrammieren wird dir das keiner ;)

fopen wär ein Stichwort - danach einfach zeilenweise auslesen und per scanf den Datenstrom aufsplitten und rein damit ins Array.
 
Aber wie bekomme ich das aufsplitten hin?!
Das ist sozusagen mein Hauptproblem... Also wie man die einzelnen Einträge aus der Zeile raus fischt :hmm:
 
zb zeichen fuer zeichen durchgehen, und das jeweilige zeichen an einen puffer haengen. wenn das zeichen nun ein tabulator ist, dann den puffer an das array an die richtige position haengen. dann den puffer leeren und weiter durchgehen.
 
Das ist jetzt vllt. ne ganz doofe Frage, aber ich hab noch nicht so den Durchblick wie man da was mit C++ machen kann...
Und zwar, wenn ich das Zeichen für Zeichen durchgehe, und an einen "Puffer"(?) hänge, dann stell ich mir das so vor, als ob ich die Zeile mit ner Art Zeigestock abraster :-)D).
Also Ziffer für Ziffer... Ich stell mir vor, dass ich dann statt einer Zahl (zB 123) nur eine Reihe von Ziffer (1,2,3) habe. C++ würde das dann irgendwie wieder als Zahl sehen? Mit was für Variablentypen muss ich da arbeiten ?
 
Hm, also ... ich bin ja eigentlich eher der Java-Typ und habe mit C++ erst vor ne Woche (oder so) angefangen. In Java wäre das jetzt nicht so das Ding.

Ich versuch's mal, musst eben etwas googlen was davon wie in C++ möglich ist. Also, eine Möglichkeit (von vielen) wäre z.B., die Datei zeilenweise einzulesen, mit einem String-Tokenizer am Tabulator zu zerlegen, die float Werte zu parsen und in das Array zu schreiben.

Wie gesagt, den genauen technischen Ablauf kann ich dir in C++ (noch) nicht sagen. Falls du doch lieber Java lernen willst, sag bescheid. :fresse:
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh