Fehler in for-schleifen-Zeile



  • Hallo... Ich bin ein Neuling in Sache C++
    und finde den Fehler in einem Übungsskript nicht.
    Ich weiss nicht, in welches Forum ich posten
    soll und hoffe, ich habe hier das Richtige erwischt.

    #include<iostream>
    #include<vector>
    using namespace std;
    
    int main () {
      vector<int> Array;
      int Eingabe;
      while (Eingabe != 0) {
        cout << "Bitte Zahl eingeben! 0 Beendet die Schleife\n";
        cin >> Eingabe;
        Array.push_back(Eingabe);
      }
      cout << "Hier die Eingaben: ";
      for (size_t vari = 0; vari < Eingabe.size(); vari++) {
        cout << Eingabe[vari];
      }
      int stop;
      cin >> stop;
    }
    

    Die Schleife wird abgebrochen sobald er Benutzer eine 0 eingibt,
    dann sollen alle vorigen Zahl-Eingaben aufgezählt werden.
    Stattdessen meldet mein Dev-C++ einen Fehler in der Zeile,
    in der die for-Anweisung sitzt...



  • Wenn du dir die for - Schleife etwas genauer anschaust, wirst du den Fehler schnell bemerken:

    [cpp]for (size_t vari = 0; vari < Eingabe.size(); vari++) {
        cout << Eingabe[vari];
    }[/cpp]
    

    Du musst die Laufvariable 'vari' mit der Größe des Vectors vergleichen, die Eingabe hat nichts mehr damit zu tun! Richtig wäre:

    [code]vari < Array.size();[/code]
    

    Dasselbe gilt für die Ausgabe des Vectors; Sie geschieht durch den Befehl

    [cpp]cout << Array(vari);[/cpp]
    

    Bis dann, Bobby - Karle



  • #include<iostream> 
    #include<vector> 
    #include<algorithm>
    using namespace std; 
    
    int main()
    {
      vector<int> Array; 
      vector<int>::iterator Iter;
      int Eingabe = 1; 
      while (Eingabe != 0) { 
        cout << "Bitte Zahl eingeben! 0 Beendet die Schleife\n" << endl; 
        cin >> Eingabe; 
        Array.push_back(Eingabe); 
      } 
      cout << "Hier die Eingaben: " << endl; 
      for (Iter = Array.begin(); Iter != Array.end(); ++Iter) { 
        cout << *Iter << endl; 
      } 
      cin.get(); 
    }
    

    🕶



  • noobTime schrieb:

    ...

    ...int Eingabe; ...
    ...Eingabe.size()...
    ...Eingabe[vari]...
    

    ...

    😮 😮
    Ich kann mir kaum vorstellen, dass das ein Compiler durchgehen lässt....und wüsste auch gar nicht, was er daraus machen sollte.
    Hast Du vielleicht einen Fehler beim Abtippen gemacht ?

    Gruß,

    Simon2.



  • huch wie peinlich...
    danke für eure Hilfe! o_o


Anmelden zum Antworten