【问题标题】: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 个“原件”。我只选择了一个我记得的,但很容易找到很多其他的。我们真的没有“规范答案”部分...

标签: c++


【解决方案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 );
    

    【讨论】:

      猜你喜欢
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-25
      • 1970-01-01
      相关资源
      最近更新 更多