在C++中,如果你想在一个函数的一行中读取多个整数,可以使用标准输入流std::cin
结合循环或者标准库中的函数来实现。以下是几种常见的方法:
#include <iostream>
#include <vector>
void readIntegers(std::vector<int>& numbers, int count) {
for (int i = 0; i < count; ++i) {
std::cin >> numbers[i];
}
}
int main() {
const int numberOfIntegers = 5;
std::vector<int> integers(numberOfIntegers);
readIntegers(integers, numberOfIntegers);
// 输出读取的整数以验证
for (const auto& num : integers) {
std::cout << num << " ";
}
return 0;
}
std::istream_iterator
#include <iostream>
#include <vector>
#include <iterator>
void readIntegers(std::vector<int>& numbers) {
std::copy_n(std::istream_iterator<int>(std::cin), numbers.size(), numbers.begin());
}
int main() {
const int numberOfIntegers = 5;
std::vector<int> integers(numberOfIntegers);
readIntegers(integers);
// 输出读取的整数以验证
for (const auto& num : integers) {
std::cout << num << " ";
}
return 0;
}
std::getline
和std::stringstream
#include <iostream>
#include <sstream>
#include <vector>
void readIntegers(std::vector<int>& numbers) {
std::string line;
std::getline(std::cin, line);
std::stringstream ss(line);
int num;
while (ss >> num) {
numbers.push_back(num);
}
}
int main() {
const int numberOfIntegers = 5;
std::vector<int> integers;
readIntegers(integers);
// 输出读取的整数以验证
for (const auto& num : integers) {
std::cout << num << " ";
}
return 0;
}
这些方法适用于需要从标准输入(通常是键盘)快速读取一系列整数的场景,例如:
std::cin
会进入错误状态。可以使用std::cin.clear()
和std::cin.ignore()
来清除错误状态并忽略错误的输入。std::cin
会进入错误状态。可以使用std::cin.clear()
和std::cin.ignore()
来清除错误状态并忽略错误的输入。std::vector
的动态特性来处理,或者在读取时限制数量。通过上述方法,你可以有效地在一个函数的一行中读取多个整数,并处理可能出现的输入问题。
领取专属 10元无门槛券
手把手带您无忧上云