online 1
gast (50)

/ Forum / Anwendungen(Java,C++...)

Anwendungen(Java,C++...)Anwendungen(Java,C++...)

Fragevon ost vom 24.11.2020, 15:09 Options

zahlenreihen aus datei einlesen, c++

hallo allerseits,

ich hab folgendes problem:

ich programmiere c++ und möchte gerne eine zahlenreihe aus einer datei in eine matrix einlesen.

das klappt soweit auch ganz gut, nur dass die erste zahl in der datei, aus der ich einlese, 81 ist und mein programm diese zahl jetzt in den ersten zwei plätzen meiner matrix ablegt, als 8 und 1.
aber das will ich ja natürlich nicht so haben..

sonst funktioniert das einlesen wunderbar...

vielleicht hat ja einer ne idee?

danke schonmal im voraus,

ost


Antwort schreiben

Antwort 1 von DeluxeStyle vom 24.11.2020, 15:13 Options

wie liest du den die Zahlen ein?
wie erkennst du, dass es sich um eine neue Zahl handelt, also wie ist das Trennzeichen?

Antwort 2 von ost vom 24.11.2020, 15:30 Options

naja,

die zahlen sind in der datei durch leerzeichen voneinander getrennt.

ich öffne die datei mit

ifstream fin ("dateiname");

und lese dann mit zwei schleifen die zahlen mit

fin >> matrix[ i ] [ j ];

in die matrix ein...


grüße

Antwort 3 von DaPascha vom 24.11.2020, 15:35 Options

Ich schätze das Problem ist, dass du den Inhalt der Datei Zeichen für Zeichen einliest. Das würde zumindest erklären, warum er die Zahl 81 als einzelnle Ziffern (8 und 1) erkennt.

DeluxeStyle hat schon das richte Stickwort genannt, du musst die Zahlen so von einander trennen, dass sie zweifellos erkennbar sind.

Im Prinzip würde schon ein Leerzeichen zwischen den einzelnen Werten ausreichen. Wenn du dann eine ganze Zeile aus der Datei liest und das Ergebnis anhand des Leerzeichens zerteilst wirst du deine Werte bekommen.

MfG DaPascha

Antwort 4 von DeluxeStyle vom 24.11.2020, 15:37 Options

genau das gleiche wie DaPascha wollte ich auch anmerken

Antwort 5 von ost vom 24.11.2020, 15:43 Options

hm,

vielleicht hab ich mich missverständlich ausgedrückt, ich meinte dass die WERTE in der datei schon durch leerzeichen getrennt sind. also da steht dann sowas wie:

81 -7 11 17 20 8 -3 -19 -1 20 -13...

und er erkennt ja alle anderen werte einwandfrei, nur den ersten eben nicht...

mir ist allerdings grade aufgefallen, dass in der datei für eine 8x9-Matrix ein wert zu wenig abgespeichert ist.
meine ausgabeschleife hab ich auch von der einleseschleife getrennt, also vielleicht kommt er deswegen durcheinander...

vielen dank auf jeden fall schonmal!

grüße

Antwort 6 von ost vom 24.11.2020, 15:48 Options

ok,

also ich hab jetzt den ersten eintrag in der datei gelöscht, neu eingetragen, den fehlenden wert ergänzt und die datei gespeichert.

und jetzt funktionierts.

danke nochmal und nen schönen tag!

grüße

ost

Antwort 7 von DaPascha vom 24.11.2020, 15:48 Options

Wie hast du denn das Feld deklariert?

Wenn das Feld vom Typ char ist, dann ist der Fehler wohl gefunden. Denn Variablen vom Typ char können nur ein einziges Zeichen als Wert annehmen.
Versuche in diesem Fall dem Feld int (integer) als Typ zuzuweisen.

Sollte das Problem nicht hier liegen, würde es uns um einiges leicher machen dir zu helfen, wenn du uns den gesamten Code-Abschnitt und den Inhalt deiner Datei postest.

MfG DaPascha

Ähnliche Themen

[Batch] Datei auslesen und Wörte in Datei schreiben
teklan  22.10.2007 - 166 Hits - 2 Antworten

wie kann ich eine cfp datei in eine pdf datei umwandeln ???
mariechristin  18.10.2007 - 152 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026