在C++中,如果你想在不明确输入数组大小n
的情况下输入数组元素,可以使用动态数组(如std::vector
)或者通过输入流来读取直到遇到特定分隔符。以下是两种常见的方法:
std::vector
std::vector
是C++标准库中的动态数组容器,它可以自动管理内存大小。
#include <iostream>
#include <vector>
int main() {
std::vector<int> arr;
int input;
std::cout << "请输入数组元素,以非数字字符结束输入:" << std::endl;
while (std::cin >> input) {
arr.push_back(input);
// 如果需要检查是否输入了非数字字符,可以在这里进行
}
// 输出数组元素
std::cout << "输入的数组元素为:" << std::endl;
for (int num : arr) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
这种方法通过读取输入流直到遇到特定的分隔符(如换行符)来结束输入。
#include <iostream>
#include <vector>
int main() {
std::vector<int> arr;
int input;
char ch;
std::cout << "请输入数组元素,以空格分隔,回车结束输入:" << std::endl;
while (std::cin >> input) {
arr.push_back(input);
// 检查是否遇到换行符
if (!(std::cin >> ch) || ch == '\n') {
break;
}
std::cin.clear(); // 清除错误标志
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // 忽略剩余的行
}
// 输出数组元素
std::cout << "输入的数组元素为:" << std::endl;
for (int num : arr) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
std::vector
方法:std::vector
可以动态地添加元素,不需要预先知道数组的大小。std::cin
读取输入,直到遇到非数字字符(如字母或特殊字符),循环结束。std::cin
读取输入,直到遇到换行符。std::cin.clear()
和std::cin.ignore()
来清除错误标志并忽略剩余的行,确保程序不会因为输入错误而崩溃。这两种方法都可以在不预先输入数组大小的情况下,灵活地输入数组元素。选择哪种方法取决于具体的需求和使用场景。
领取专属 10元无门槛券
手把手带您无忧上云