Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Daten in einen Array(größe unbekannt) 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
11.01.2009, 14:12 Uhr
~Instinction
Gast


hallo community!

ich möchte aus einer bsp.dat zahlen in einen array speichern.
in dieser bsp.dat ist eine unbekannte anzahl von zahlen

wie kann ich die größe des arrays festlegen obwohl ich nicht die anzahl kenne.
nehmen wir mal an in dieser bsp.dat können nur 0-50 zahlen sein ..

eine möglicheit wäre natürlich mit scanf einmal die datei bis EOF durchzulaufen und dann nachzuzählen....

gibt es eine möglicheit sofort bei scanf die zahl in einen array zu schreiben?Das sozusagen der speicherplatz des arrays immer um 1 vergrößert wird ?

ich hoffe ihr könnt mir helfen

MfG

Instinction
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.01.2009, 20:10 Uhr
0xdeadbeef
Gott
(Operator)


In C++, benutz std::vector und push_back. Zum Beispiel:

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

int main() {
  std::ifstream in("bsp.dat");
  std::vector<int> zahlen;
  int zahl;

  while(in >> zahl) { zahlen.push_back(zahl); }
}


...wobei es da performancetechnisch sinnvoll sein kann, std::list zu benutzen.

In C mit realloc. Das kannste dir aber selbst zusammenfummeln.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.01.2009, 13:33 Uhr
~Instinction
Gast


ich habe vergessen zu erwähnen das ich in C arbeite ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.01.2009, 14:37 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Naja da gibts verschiedene Möglichkeiten. Eine nicht so schöne hast du ja mit dem einmal zählen schon genannt.
Eine andere wäre das ganze in Form einer verketteten Liste abzulegen.

Noch eine andere wäre das du ein Array mit einer geschätzten Größe anlegst und sobald das voll ist vergrößerst du das wieder um eine bestimmte Anzahl Elemente. Dadurch müsstest du nicht bei jedem neuen Element das Array vergrößern.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
12.01.2009, 18:45 Uhr
~Instinction
Gast


was meinst du mit liste ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
12.01.2009, 22:42 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


sowas: http://moritz.faui2k3.org/de/dmisc/einfach-verkettete-listen

2te variante: z.b mal 50 elemente anlegen, wenn zu klein, realloc mit 100 elementen, dann mit 200, dann mit 400, usw...
--
class God : public ChuckNorris { };

Dieser Post wurde am 12.01.2009 um 22:44 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
12.01.2009, 22:44 Uhr
Hans
Library Walker
(Operator)


sowas hier: http://de.wikipedia.org/wiki/Verkettete_Liste

[edit: Mist, jetzt war der Flo schneller... ]
--
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
007
12.01.2009, 22:47 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


@Hans:
--
class God : public ChuckNorris { };

Dieser Post wurde am 12.01.2009 um 22:47 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
12.01.2009, 23:43 Uhr
0xdeadbeef
Gott
(Operator)



Was ist so komisch, junger Mann?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
13.01.2009, 00:01 Uhr
Hans
Library Walker
(Operator)


Sehr interessant die Herren.
Da ich diese Serie allerdings noch NIE geguckt habe, (und auch niemals gucken werde) sagt mir Eure Show jetzt sehr viel: nämlich gar nichts!

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
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: