繁体   English   中英

逐行读取文本文件,然后逐字逐句地读取数据

[英]Read Text File Line by Line, then word by word c++, push on to an array

我的数据如下:

numbers.text

12     32     21     42

33     566    332    12

66     994    4      33

12     33     33     41

我想将前三个值推入整数向量,而忽略最后一个值。 我需要在每一行中有一个新的前三个数字向量。 只是空格用作分隔符(TAB)。 谢谢!

好吧,最终您希望以文本文件中每行3个整数的std::vector<int>结尾。 这基本上是解析文件的练习,使用C ++文件流对象和流输入迭代器非常容易。

使用std::ifstream对象打开文件。 然后,您可以使用std::istream_iterator<int>遍历文件中的每个整数。 这将提取每个整数,因此您可以将其存储在向量中。 如果要舍弃每行的第四个整数,只需方便使用计数器变量,这样就可以舍弃每第4个值。

这基本上就是它。 我会留给你实际生成代码。

  1. 打开文件
  2. 使用std::getline()遍历文件中的每一行
  3. 将整数解析出行并转换为向量
    1. 将行放在std::istringstream以解析出整数
    2. 从字符串流中提取三个整数
    3. 将整数推入向量
    4. 您要如何处理向量? 也许把它推进另一个向量?

注意这里发生的事情:您写了一个问题,我将其翻译为一系列指令,最后将其翻译为代码。 这就是我们编写简单程序的方式。 诀窍在于充分了解问题,以将其转换为上述伪代码

如果您只是直接读取文件, std::ifstream将起作用。 如果你正在使用getline (这里真的没有必要),你可以编写一个简单的split函数来分隔值并插入你想要的值。 因为这听起来像学校作业,我怀疑你会想要使用boost::方法,这会使这相当微不足道。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM