gpt4 book ai didi

c++ - istream_iterator : taking extra input

转载 作者:太空狗 更新时间:2023-10-29 20:48:03 26 4
gpt4 key购买 nike

我无法让这该死的东西正常工作。问题是,如果我想输入 2 个数字,我实际上必须输入 3。有什么问题吗?

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;
}

最佳答案

将流迭代器循环更改为:

    for(size_t szI = 0; (szI < szCount); ++szI)
{
*oitBegin = *iitBegin;
if (szI < szCount - 1)
{
++oitBegin;
++iitBegin;
}
}

关于c++ - istream_iterator : taking extra input,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4157134/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com