我不能得到這個爆炸的東西正常工作。問題是,如果我想輸入2個數字,我實際上必須輸入3.什麼是錯誤的?istream_iterator:採取額外的輸入
namespace MT
{
template<class IIT, class OIT>
OIT copy_n(IIT iitBegin, size_t szCount, OIT oitBegin)
{
for(size_t szI = 0; (szI < szCount); ++szI)
{
*oitBegin++ = *iitBegin++;
}
return oitBegin;
}
};
int main()
{
vector<int> vNumbers;
vector<char> vOperators;
int iNumCount = 0;
int iNumOperators = 0;
cout << "Enter number of number(s) :) :\n";
cin >> iNumCount;
cout << "Enter number of operator(s) :\n";
cin >> iNumOperators;
int iNumber;
cout << "Enter the " << iNumCount << " number(s):\n";
MT::copy_n(istream_iterator<int>(cin), iNumCount, back_inserter(vNumbers));
char cOperator;
cout << "\nEnter the " << iNumOperators << " operator(s):\n";
MT::copy_n(istream_iterator<char>(cin), iNumOperators, back_inserter(vOperators));
copy(vNumbers.begin(), vNumbers.end(), ostream_iterator<int>(cout, " "));
cout << endl;
copy(vOperators.begin(), vOperators.end(), ostream_iterator<char>(cout, " "));
cout << endl;
return 0;
}
無關的(可能)的問題:你的第二個istream_iterator應該是istream_iterator 。與第二個ostream_iterator 相同。那些正在關閉矢量。 –
luke
2010-11-11 17:30:34
@luke:是的,已編輯。問題依舊。 – nakiya 2010-11-11 17:31:38
你有幾條流提取線:'cin >> iNumCount'和'cin >> iNumOperators'。當你說「你想輸入2」時,你認爲你需要輸入3個數值,那麼我認爲你不計算它們? – wilhelmtell 2010-11-11 17:50:41