none
[C++] cin wird ignoriert RRS feed

  • Frage

  • Hallo Leute,

    Mein Problem ist folgenes :

    Ich habe eine while-schleife, in der ich solange Werte in einen Vector speicher, bis ich die Eingabe beende ( Strg+Z ).

    Bis dahin läuft alles.

    Nun will ich mit einem zweiten cin wieder ein int einlesen lassen, doch das ganze wird einfach ignoriert und das Programm führt den code ohne eingabe weiter aus.

    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    int main()
    {
    	vector<int>zahlen;
    
    	cout << "Geben Sie Zahlen ein ..." << endl;
    	int val1 = 0;
    	while(cin >> val1)
    	{
    		zahlen.push_back(val1);
    	}
    
    	cout << "Wieviele wollen Sie addieren lassen ? " << endl;
    	int val2 = 0;
    	cin >> val2;
    
    	int addieren = 0;
    	for(int i = 0; i < val2; i++)
    	{
    		addieren += zahlen[i];
    	}
    
    	cout << "Add : " << addieren << endl;
    
    
    
    	system("PAUSE");
    	return 0;
    }
    

    Ich hoffe Ihr könnt mir weiterhelfen :P

    Und ja , die Eingaben für cin sind alle gültig -> (1,2,3,4,5....100...) -> Ich teste meist mit 1,2,3.


    • Bearbeitet TheRealBvz Donnerstag, 12. September 2013 22:42
    Donnerstag, 12. September 2013 22:41

Antworten

  • Strg+Z signalisiert EOF für cin. cin ist also auf EOF und liefert eben nichts mehr.

    Du müsstest das anders machen und die Anzahl der Elemente Abfragen, die Du zuerst in dem vector sammelst.


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de

    Freitag, 13. September 2013 07:44
    Moderator

Alle Antworten