Variable hochzählen



  • Hallo ich will folgendes mit Hilfe einer for Schleife lösen:

    cout << "Zeile 1  : " << zeile_1 << endl;
    cout << "Zeile 2  : " << zeile_2 << endl;
    cout << "Zeile 3  : " << zeile_3 << endl;
    cout << "Zeile 4  : "<<  zeile_4 << endl;
    
    speicher[1]=zeile_1;
    speicher[2]=zeile_2;
    speicher[3]=zeile_1;
    speicher[4]=zeile_2;
    

    Ich hatte das schon so versucht:

    cout << "Zeile 1  : " << zeile_1 << endl;
    cout << "Zeile 2  : " << zeile_2 << endl;
    cout << "Zeile 3  : " << zeile_3 << endl;
    cout << "Zeile 4  : "<<  zeile_4 << endl;
    
    for (int i=1 ; i<4 ; i++)
    {
    char zeile_;
    speicher[i] = zeile_<<i // das funktioniert ja nicht aber wie kann ich die
                         // variable hochzählen ??
    }
    
    cout<<"Speicher: "<< speicher[1]<<"\n";
    cout<<"Speicher: "<< speicher[2]<<"\n";
    

    und wenn man anstatt char zeile_;

    int zeile_;

    nimmt dann gibt der bei speicher[1] ein x aus und bei speicher[2] ein -
    woran liegt das nu schon wieder ?



  • warum fuellst du die Werte nicht gleich ins Array ein oder nimmst besser noch eine std::list / einen std::vector?



  • So funktioniert es nur wie macht man das z.b. wenn nur 2 Zeichen eingeben werden aber das Array 256 Zeichen aufnehmen kann?

    Wenn ich es z.b. so mache wie unten dann sendet der da noch so ein Zeichen mit. Ich hab auch schon das Array terminiert aber damit klappte es auch nicht.

    #include <iostream>
    using namespace std;
    
    int main()
    {
    
    char speicher[256];
    
    char wert_1,wert_2;
    
    cout<<"Eingabe 1: ";
    cin>>speicher[1];
    
    cout<<"Eingabe 2: ";
    cin>>speicher[2];
    
            for (int i=0 ;i<3; i++)
            {
            cout<<speicher[i]<<"\n";
            }
    
            for (int i=0 ;i<2; i++)
            {
            cout<<speicher[i]<<"\n";
            }
    
     return 0;
    }
    


  • char ist nur ein Zeichen. Was du willst ist std::string aus #include <string>.

    Dann ein string-Array, in die einzelnen Elemente des Arrays die Eingabe schreiben und entsprechend behandeln.



  • Ich hab es gerade mal mit #include <string> std::string und einmal ohne probiert beides funktioniert.

    Wo wären da jetzt z.b. die unterschiede ?

    Mit #include <string> und std::string

    #include <string>
    #include <iostream>
    using namespace std;
    
    int main()
    {
    
    std::string speicher[256];
    
    cout<<"Eingabe 1: ";
    cin>>speicher[1];
    
    cout<<"Eingabe 2: ";
    cin>>speicher[2];
    
            for (int i=0 ;i<3; i++)
            {
            cout<<speicher[i]<<"\n";
            }
    
     return 0;
    }
    

    ohne #include <string> und std::string

    #include <iostream>
    using namespace std;
    
    int main()
    {
    
    string speicher[256];
    
    cout<<"Eingabe 1: ";
    cin>>speicher[1];
    
    cout<<"Eingabe 2: ";
    cin>>speicher[2];
    
            for (int i=0 ;i<3; i++)
            {
            cout<<speicher[i]<<"\n";
            }
    
     return 0;
    }
    


  • array schrieb:

    Ich hab es gerade mal mit #include <string> std::string und einmal ohne probiert beides funktioniert.

    Du hast beides mal mit std::string probiert (nur das string scheinbar implizit von iostream includiert wird). Daher ist beides von dir gepostete identisch.

    P.S: Wenn du aber in deinen beispiel wieder auf char[] statt string[] umstellst, GIBT es gravierende Unterschiede.


Anmelden zum Antworten