Supportnet Computer
Planet of Tech

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

zahlenreihen aus datei einlesen, c++





Frage

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 1 von DeluxeStyle

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

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

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

genau das gleiche wie DaPascha wollte ich auch anmerken

Antwort 5 von ost

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

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

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

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: