Anfänger : Zeichenketten



  • Hallo !

    Ich beschäftige mich seit einiger Zeit mit C++ aber
    ich habe immer noch ein Problem mit Zeichenketten.
    Z.B. ich möchte eine Liste von Dingen erstellen ,
    die ich eingeben lasse und dann in der Liste abspeichere.
    Wenn ich das so mache :

    #include <iostream>
    #include <windows.h>
    using namespace std;
    
    int main(){
    
    	int      iCount;
    	char     szBuffer[64];
    	LPSTR  * szList;
    
    	cout << "Wie viele Dinge sollen auf die Liste ? ";
    	cin  >> iCount;
    
    	szList = new LPSTR[iCount];
    
    	for( int i = 0 ; i < iCount ; i++ ){
    		wsprintf( szBuffer , "Ding #%i : " , i+1 );
    		cout << szBuffer;
    		cin  >> szBuffer;
    		szList[i] = szBuffer;
    	}
    
    	cout << "\n\nEs sind auf der Liste :\n";
    	for( int i = 0 ; i < iCount ; i++ ){
    		cout << " - " << szList[i] << endl;
    	}
    
    	Sleep( 5000 );
    	return 0;
    }
    

    Kommt immer iCount mal das gleiche raus,
    da ja die Liste nur aus Pointern besteht und die immer
    nur auf den einen (letzten) Wert von szBuffer zeigen.

    Aber wie kann ich "feste" Listen erstellen ?

    Ich bin dankbar für jede Antwort.



  • "Du sollst nicht posten in des falschen Forums Unterort."

    Du musst den Puffer schon kopieren und nicht immer die selbe Adresse der Liste zuweisen. Desweiteren wäre es nicht verkehrt sich mal std::vector<> und std::stringstream anzuschauen. Was du da hast sieht nach C und C++ Mischmasch aus.



  • Hallo !

    Und wie kopiere ich den Puffer ?
    Und was ist daran Mischmasch ?


Anmelden zum Antworten