嘗試在Visual 2010,Visual 2012和CodeBlocks上沒有成功。過去3天我一直在網上漫遊,找不到任何幫助我的答案。Push_back不起作用
我已經試過兩種方式,一是
vector<int> mvec;
int num;
while(cin >> num)
mvec.push_back(num);
cout << mvec[0];
應該輸出任何輸入的第一個號碼。相反,它什麼都不做。如果我在輸入一個數字序列或在它後面輸入一個字母,它會打印出第一個數字。
想這太
vector<int> myvector;
int myint;
do {
cin >> myint;
myvector.push_back(myint);
} while (myint);
cout << myvector[0];
再次,什麼都沒有。我發現這最後一個片段,而谷歌搜索,它顯然是爲它的創造者工作。
一些網上的編譯器告訴我,1 3 4例如輸出爲1。一個我發現說,這項計劃正在試圖打印一個空向量
至少,可能有人試圖運行這些和告訴我他們是否工作?我將在下面列出一個完整的程序。
#include <iostream>
#include <vector>
int main()
{
using namespace std;
vector<int> mvec;
int num = 0;
while(cin >> num)
mvec.push_back(num);
cout << mvec[0];
}
謝謝你的時間和道歉,如果這是非常明顯的。
你遇到的問題是循環永遠不會退出。這是您需要制定的設計決策。您如何知道用戶何時完成輸入?拿出這個答案,然後應該很容易解決。 – JoshG79