如何将文件中的一行数字读入列表中? [复制]

Posted

技术标签:

【中文标题】如何将文件中的一行数字读入列表中? [复制]【英文标题】:How can I read a line of numbers from a file into a list? [duplicate] 【发布时间】:2013-02-20 13:11:43 【问题描述】:

假设我有一个 .in 文件,其中第一行数据“3 59 98”和第二行数据“8 52 77 45”。

我正在尝试将每一行整数读入一个列表。我已经了解如何制作列表并将数字放入列表中。我遇到的问题是如何将第一行数字放入列表对象中。

以下是我到目前为止的想法:

// in is a filestream object
int a
while (in >> a)

     integer_list.push_back(a);

我知道这不起作用,因为它将两行数字都放在一个列表中。

有什么建议吗?

【问题讨论】:

不再重复。这已经回答了一百次了。请不要发布此问题的答案。 @KerrekSB 我删除了我的答案。也许我们应该尝试编辑原件以便更容易找到? 如何结束这个问题? @Brandon:别担心,一旦有足够多的人投票认为它是重复的,它就会自动关闭。不过,您可以保留它,这样当人们搜索它时,他们会被引导到其他问题之一。 @IvayloStrandjev:我认为至少有 20 个“原件”。我只选择了一个我记得的,但很容易找到很多其他的。我们真的没有“规范答案”部分... 【参考方案1】:

使用getline 读取整行,然后从该行创建std::istringstream。从std::istringstream 读取列表中的数字,就像从文件流中读取一样。

【讨论】:

【参考方案2】:

您需要做的是创建一个整数列表列表,尽管在 C++ 中您更喜欢使用 vector。

std::vector< std::vector<int> > list_of_integer_lists;

然后为每一行添加一个新列表或向量。

list_of_integer_lists.push_back( std::vector<int>() );

对于每一行,您将数字添加到最后一个列表中。

list_of_integer_lists.back().push_back( number );

【讨论】:

以上是关于如何将文件中的一行数字读入列表中? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将 csv 文件读入 SWI prolog 中的列表列表,其中内部列表代表 CSV 的每一行?

将文本中的数字读入python中的变量

如何将文件逐行读入node.js中的数组[重复]

将文本文件中的某些双精度读入列表

将文件中的双值数字读入 C++ 中的向量并访问它们的值

将文件中的间隔整数读入 C++ 中的数组