Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Zeiger-stuff

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 <
000
26.02.2004, 17:27 Uhr
KaraHead



Hi,
Also mein Prob: Ich will ein Proggie, dass einen string nach dem anderen einliest bis der Benutzer es mit "list" enden lässt. Dann weden alle strings wieder ausgegeben...
Naja hoffe so ungefir klar

Und hat jemand eine Lösung? Nein kleiner Scherz
Also ich hab mir das so gedacht:

C++:
int main(int argc, char* argv[])
{
    int i=0;
    char** c_str=(char**)malloc(1*sizeof(char*));
    
    do{
        cin>>c_str[i];
        c_str=(char**)realloc(c_str,(i+1)*sizeof(char*));
        ++i;
    }while(c_str!="list");
//Ausgabe
    for(i=0; c_str[i]<"\0"; ++i)
        cout<<c_str[i];

    system("PAUSE");
    return 0;
}


Aber ich weiss nicht ob mein Ansatzt überhaupt ansatzweise richtig ist


Kann mir jemand auf die Sprünge helfen oder mir meine Fehler zeigen???

P.S. ist keine Hausaufgabe oder so, ist aus einem Buch das ich lese.
Danke schonmal...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.02.2004, 17:31 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ich seh in deinem code ein cout...
daraus schliesse ich du kannst c++ verwenden

vergiss am besten den spass wie du es erst machen wolltest und nimm z.b. ein std::vector<std::string> mystringarray;

dann ist dein problem supereinfach gelöst und du brauchst dir keinen kopf zu machen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.02.2004, 18:02 Uhr
KaraHead



Danke für den Tipp, aber
1. std::vector<std::string> mystringarray; sagt mir eigentlich nicht viel
2. Hab's nochmal durchgelesen im Buch und es sollte mit diesen Zeiger auf Zeiger... sein. Gibt's da ne möglichkeit oder geht das gar nicht
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
26.02.2004, 18:12 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


klar geht ist aber ein bisschen kompliziert
...
ich hacks mal so ungetestet ins forum also vorsicht

C++:
int main(int argc, char* argv[])
{
    int j,i=0;
    char** c_str=(char**)malloc(1*sizeof(char*));
    //das ist noch in ordnung
    do{
        c_str[i]=(char*)malloc(100*sizeof(char)); //hier hast du schon den salat du weisst gar nicht wieviel speicher du brauchst.... naja 100 sollten hoffentlich reichen
        cin>>c_str[ i ];//das ist schlecht du musst erst speicher dafür allokieren
        c_str=(char**)realloc(c_str,(i+1)*sizeof(char*));  //das ist theoretisch in ordung , eigentlich sollte man einen tempzeiger definieren damit man checkt ob realloc io war an sonsten hat man ein riesen speicherloch aber zum testen reicht es erstmal so
        ++i;
//    }while(c_str!="list"); //aua das ist ganz übel
    }while(strcmp(c_str[i],"list"));

//Ausgabe
    
   for(j=0; j<i; ++j)  //oder bis i-1 je nachdem man das list auch noch mit ausgeben will
        cout<<c_str[j]<<endl;

//hier noch den allokierten speicher freigeben
    system("PAUSE");
    return 0;
}



--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 26.02.2004 um 18:12 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
26.02.2004, 18:21 Uhr
KaraHead



Danke,

C++:
do{
...
}while(strcmp(c_str[ i ],"list"));


Das hab ich auch am Anfang probiert dann hat er rumgesponnen.

Aber naja, danke ich werd mal rumtüffteln vieleicht bekomm ich es ja hin
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
26.02.2004, 18:46 Uhr
Pablo
Supertux
(Operator)


Wieso benutzt nicht die STL Komponente, wenn du schon mal C++ programmierst?

Ein Vektor ist wie ein Array, nur dass du dich nicht darum kümmern musst, den Speicher zu allokieren, usw. Der Vektor übernimmt das für dich, und du kannst praktisch unendlich viele Objekte einfügen.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
27.02.2004, 11:05 Uhr
KaraHead



Ich hab Vektoren noch nicht benutzt weil ich noch nicht so weit bin (im Buch).


Aber gut zu wissen wollt schon immer mal wissen was der Unterschied zwischen Vektoren und arrays ist....
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
27.02.2004, 13:36 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


iss nicht falsch das erstmal mit doppelpointern zu versuchen.
das leben einfach machen kannst du dir ja immer noch wenn du das andere verstanden hast...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: