0
我想獲得一個函數來接受一行中輸入的所有值,忽略逗號,並將它們存儲到一個向量中。我似乎在放棄我的最後一個輸入
然後我需要矢量將它們打印回來。我是C++的新手,在深入瞭解一些教程並學習了一些小技巧之後,我設法從中除去了一個bug。
我無法得到最後一個數字出現。它將顯示所有這些,除了輸入前的最後一個數字被按下。
有沒有辦法讓最後一個工作,或者我需要整行存儲到一個字符串和搜索方式?
這是我的代碼:
#include "stdafx.h"
#include<math.h>
#include<iostream>
#include<vector>
#include<stdlib.h>
using namespace std;
void fillVector(vector<int>&);
void printVector(const vector<int>&);
int main()
{
vector<int>myVector;
fillVector(myVector);
printVector(myVector);
system("PAUSE");
return 0;
}
void fillVector(vector<int>& newMyVector) {
cout << "Please type in a series of numbers separated by a comma, and press Enter when done." << endl;
int input;
cin >> input;
while (cin.peek()!= '\n') {
newMyVector.push_back(input);
cin.ignore(numeric_limits<streamsize>::max(), ',');
cin >> input;
}
cout << endl;
}
void printVector(const vector<int>& myNewVector) {
for (unsigned int i = 0; i < myNewVector.size(); i++){
if (i <= myNewVector.size() - 2) {
cout << myNewVector[i] << ", ";
}
else {
cout << myNewVector[i]<<endl;
}
}
}
我很新的C++,它會顯得好像循環會抓住的最後一個號碼,並將其插入到載體,但它似乎跳過它。
任何幫助都將不勝感激。
謝謝大家提前爲您的時間!
太謝謝你了。我知道這可能是一些簡單的事情,而且果然如此。我得到它的工作,現在我需要做的就是編輯的說明一個逗號添加到末尾所以停止搜索,但現在我必須往前走的地方。再次感謝! –