gpt4 book ai didi

c++ - 将输入读入动态大小的数组

转载 作者:太空狗 更新时间:2023-10-29 21:50:32 24 4
gpt4 key购买 nike

我一直在尝试做的是从 stdin 读取一行并将其拆分,使用空格作为分隔符。

假设我有这个作为输入:

2
1 2
3 4

第一行给出了我想阅读的行数,它们都是整数行,由未知数量的空格分隔(即可能是 1 个空格,但也可能是 10 个空格)。< br/>我一直在尝试做的是将这些行读入动态大小的整数数组。

这在 Python 中非常简单:

foo = raw_input()
array = foo.split()

或更短:

foo = raw_input().split()

但是,迫于形势,不得不学习C++的美妙之处。所以我尝试创建类似于上述 Python 代码的东西:

#include <iostream>

using namespace std;

int lines;
int *array;

int main() {
cin >> lines;
for (int line = 0; line < lines; line++) {
// Something.
}
}

我似乎不知道拆分输入行的方法。我知道 std::cin 一直读取到空白为止。然而,我似乎想不出有什么东西可以统计线上的数字数量……

我们将不胜感激,谢谢。

最佳答案

所以鉴于您想要的只是轻推,这里有一些提示..

std::getline() - 允许您从流中读入 std::string .

然后您可以构造一个 std::istringstream使用你刚刚读入的这个字符串。然后使用这个流来读取你的整数

例如:

std::string line;
if(std::getline(std::cin, line))
{
std::istringstream str(line);
int lc;

if (str >> lc) // now you have the line count..
{
// now use the same technique above
}
}

哦,对于“动态大小的数组”,您需要查看 std::vector<>

关于c++ - 将输入读入动态大小的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5930464/

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