如何将文件中的一行数字读入列表中? [复制]
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 );
【讨论】:
以上是关于如何将文件中的一行数字读入列表中? [复制]的主要内容,如果未能解决你的问题,请参考以下文章