Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Zahlen aus Datei in Array schreiben

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 < [ 2 ]
000
20.06.2006, 19:16 Uhr
~Patrick
Gast


Hi!
Ich habe folgendes Problem:
Ich versuche eine Reihe von Zahlen aus einer TXT-Datei einzulesen und in ein "int field[256][320]" - Array zu schreiben. Dabei soll immer eine Zahl in einen neuen Teil des Arrays.
Die Datei hat 256 Spalten und 320 Reihen von Zahlen.



Danke, Patrick
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.06.2006, 20:39 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Ja wo ist das problem?
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.06.2006, 21:12 Uhr
Hans
Library Walker
(Operator)


Hi,

dann zeig mal den Quellcode, und erkläre, wo das Problem liegt, dann wird Dir auch weiter geholfen. Ansonsten gibt es zu Fragen, die dieser sehr ähnlich sind schon Antworten hier im Forum. Einfach mal die Suchfunktion benutzen.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
20.06.2006, 21:15 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


guck dir mal stringstream und getline an...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
21.06.2006, 19:13 Uhr
~MartinF
Gast



C++:
#include <iostream>
#include <fstream>
#include <iterator>
#include <vector>

using namespace std;


int main()
{
  /**
   * Werte aus der Datei "datei" via Streamiterator auf Filestream in
   * ein Array mit den Dimensionen 5x3 einlesen
   */

  fstream fs("datei");
  istream_iterator<int> ii(fs);
  istream_iterator<int> eos;

  int v[5][3];
  copy(ii, eos, &v[0][0]);

  /**
   * Eingelesene Werte aus dem Array auf die Standardausgabe schreiben
   */

  ostream_iterator<int> oi(cout, "\n");
  copy(&v[0][0], &v[4][3], oi);  // index i = n-1

  return 0;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
21.06.2006, 20:26 Uhr
(un)wissender
Niveauwart



C++:
fstream fs("datei");
istream_iterator<int> ii(fs);
istream_iterator<int> eos;

int v[5][3];
copy(ii, eos, &v[0][0]);



Sowas bitte nie machen. Speicherüberlauf ist da vorprogrammiert.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
22.06.2006, 13:04 Uhr
~Patrick
Gast


also in dem code blick ich nicht duch!

hier der der fehlerhafte code von mir:

C++:
    ifstream datei;
    char status[100];
    datei.open("1.dat.txt", ios_base::in);
    
    if(!datei) { MessageBox(0,"Fehler beim Laden der Datei","",MB_OK); }        
        datei >> status[100];
    field[x][y] = (int)status[0];

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
22.06.2006, 14:21 Uhr
~MartinF
Gast


@ (un)wissender:


Zitat:

Sowas bitte nie machen. Speicherüberlauf ist da vorprogrammiert.



Warum? Bei der deklaration des Arrays wird der nötige speicher allokiert. Meinst du vlt. das wenn mehrere Dateien von dem Stream gelesen werden über den Speicher hinaus geschrieben wird? Wenn ja: "Die Datei hat 256 Spalten und 320 Reihen von Zahlen." Ich würde auch einen der STL-Container vorziehen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
22.06.2006, 14:27 Uhr
(un)wissender
Niveauwart



Zitat von MartinF:

Bei der deklaration des Arrays wird der nötige speicher allokiert.



Eben nicht. Du weißt gar nicht, wie viel Speicher benötigt wird, da du nicht weißt, wie groß die Datei wirklich ist.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
22.06.2006, 14:37 Uhr
~MartinF
Gast


@ (un)wissender:

bitte genauer lesen! in der aller ersten post wird schon gesagt das die datei genau 256 Spalten und 320 Reihen von Zahlen enthällt.

bitte auch meinen letzten post beachten in dem ich genau das geschrieben hab!

Auch soll nicht der Eindruck entstehen, das ich die Variante mit dem Array vorziehe; es wird jedoch in "Aufgabenstellung" gesagt, das die Daten in ein Array geschrieben werden sollen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ 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: