Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Doch ein größeres Problem mit dem Array

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
04.07.2003, 12:55 Uhr
mastertango



mein Programmteil sieht folgendermaßen aus....

void frageindex()
{
int nr=1;
int anzahl=-1;
FILE *ffragen;
ffragen=fopen("Fragef.txt","r");
string sdatensatz;
char cdatensatz[1000];
while(fgets(cdatensatz,1000,ffragen)!=NULL)
{
anzahl+=1;
}
string *datensatz = new string[anzahl];

fclose (ffragen);
ffragen=fopen("Fragef.txt","r+");
while (fgets(cdatensatz,1000,ffragen)!=NULL );
{
sdatensatz=cdatensatz;
Separator(sdatensatz,";",1)=nr;
datensatz[nr-1]=sdatensatz;
nr++;
}
cout<<datensatz[0]<<endl;
cout<<datensatz[1]<<endl;


leider wird nur ein Datensatz ausgegeben ......warum .....

in der Textdatei stehen 39 Datensätze......

Gruß MAster
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
04.07.2003, 13:06 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


benutz am besten stl (z.b std::vector usw) für solche Arrays ... sind übersichtlicher und funktionieren normal auch
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.07.2003, 13:17 Uhr
mastertango




Zitat:
FloSoft postete
benutz am besten stl (z.b std::vector usw) für solche Arrays ... sind übersichtlicher und funktionieren normal auch


Sorry....bin wirklich ein anfänger.....stl bze. std::vector ...sagt mir nichts ....

Gruß Master
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
04.07.2003, 13:58 Uhr
mastertango



tja...das löst alles mein Problem niht.....entweder bin ich blind und ich seh den Fehler nicht ....oder es liegt an was anderem.

Ich will ja nur das die 39 Zeilen aus der Textdatei nacheinander in den array eingelesen werden.
Sprich Zeile für Zeile in Zeile für Zeile ;-)

//Die Funktion Separator sucht mir übrigens nur aus der Textdatei das Trennzeichen und schreibt dann eine bestimmte Zahl an die erste Stelle.

....müsste er so doch machen ..oder nicht
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
04.07.2003, 14:05 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


du musst das problem mit einem dynamischen array lösen sonst geht das nicht.

du hast folgende Möglichkeiten.

1) du allokierst einfach mehr speicher als du brauchst und hoffst das du nie einen überlauf bekommst(sehr sehr schlecht möglichkeit)

2)du nimmst ne Liste

3)
du bekasperst dich mit vector oder bittest einen Templateexperten (also z.b. beefy), dass der dir nen schönes kurzes Beispiel für vektor schreibt

4) oder du machst das mit new und delete

anders gehts nicht
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
04.07.2003, 14:19 Uhr
mastertango



Das kann es doch irgendwie nicht sein....ich muss doch irgendwie dem Programm sagen können "erstelle einen Array der soviele Zeilen besitzt wie die Zahl die du eben ermittelt hast groß ist"Also ...Zahl "int =10" mache den array[10] groß ....
Danach soll sich die größe ja nicht mehr ändern.

Außerdem muss ich das mit array machen. Ist leider so vorgeschrieben;-(
Obwohl ich nach kurzem anlesen lieber mit einer Liste gearbeitet hätte.

naja vielleicht fällt ja einem was ein.
Muss außerdem auf dem Borland laufen.


Gruß

Master
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
04.07.2003, 14:36 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ja kannst du ja auch machen.
das geht dann mit new und delete.
mit new forderst du den speicher an und mit delete gibst du ihn wieder frei.

Gruss Heiko
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
04.07.2003, 14:40 Uhr
~bussibär
Gast


du kannst es auch unter C mit malloc (speicher anfordern) und mit free (speicher freigeben) machen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
04.07.2003, 14:53 Uhr
mastertango



danke für die Hilfe .....scheint nu zu klappen ....

Gruß

Mastertango
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
04.07.2003, 17:16 Uhr
~0xdeadbeef
Gast


Wie wärs mit

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

using namespace std;

void frageindex() {
    ifstream fragen("Fragenf.txt");
    string zeile;
    vector<string> datensaetze;
    while(!fragen.eof()) {
        getline(fragen, zeile);
        datensaetze.push_back(zeile);
    }
    for(int i = 0; i < datensaetze.size(); ++i)
        cout << datensaetze[i] << endl;
}

 
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: