[英]How do I take an input in C++ and “split” it into a list? In other words, take N inputs and put in into an array of N length
我正在尝试通过执行一些 Google Kick Start 来改进我的 C++ 但我无法开始我的程序,因为我无法获得 N 个输入。 我来自 python,使用 input().split() 非常容易,但我不知道如何在 C++ 中执行此操作。 我尝试用谷歌搜索找到答案,但我无法正确地将我的问题说出我找到答案的地方。 这是我当前的代码:
#include <iostream>
int main() {
int t = 0;
std::cin >> t;
for (int i = 0; i < t; i++) {
int n = 0, int k = 0;
int a[1000];
std::cin >> n >> k;
std::cin >> a;
}
}
,其中 T 是测试用例的数量,N 是列表中的项目数,K 是用于计算竞赛答案的参数,A 是用于存储值的长度为 N 的数组。 (比赛已经结束,我没有作弊)如果有人能帮助我了解 std::cin 的工作原理,那就太好了。 一开始我以为会和python的input()一模一样,但是不一样。 谢谢。
首先,您的变量声明中有一个错字。 你应该在语句中只写一次类型,所以它应该是int n = 0, k = 0;
.
提取 ( >>
) 运算符仅读取单个数字。 要将输入输入到数组中,您只需编写一个循环:
int a[1000];
for (int i = 0; i < n; i++)
{
std::cin >> a[i];
}
这只是读取n
数字并将它们存储到a
中的连续元素中。
如果你想花哨,你可以使用 stream 迭代器:
std::copy_n(std::istream_iterator<int>(std::cin), n, a);
std::istream_iterator<int>(std::cin)
构造一个 stream 迭代器,它从std::cin
中提取int
。 std::copy_n
然后将n
数字从 stream 迭代器复制a
. 您需要#include <iterator>
和#include <algorithm>
才能使用它。 如果您还不了解这一点,您可能会想要坚持使用循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.