我的数据如下:
12 32 21 42
33 566 332 12
66 994 4 33
12 33 33 41
我想在整数向量上推送前三个值而忽略最后一个值。每一行我需要有一个前3个数字的新向量。只是空格用作分隔符(TAB)。谢谢!
答案 0 :(得分:1)
好吧,最终你想为文本文件中的每一行最终得到std::vector<int>
个3个整数。这基本上是解析文件的练习,使用C ++文件流对象和流输入迭代器非常容易。
使用std::ifstream
对象打开文件。然后,您可以使用std::istream_iterator<int>
迭代文件中的每个整数。这将提取每个整数,因此您可以将其存储在向量中。如果你想丢弃每一行的第四个整数,只需保留一个计数器变量,这样你就可以丢弃每个第4个值。
基本上就是这样。我会留给你实际生成代码。
答案 1 :(得分:1)
std::getline()
std::istringstream
中以解析整数注意这里发生了什么:你写了一个问题,我把它翻译成一系列指令,最后你将它翻译成代码。这就是我们编写简单程序的方式。诀窍在于充分理解这个问题,将其转化为伪代码,如上所述。
答案 2 :(得分:0)
std::ifstream
将起作用。如果您正在使用getline
(这里真的没有必要),您可以编写一个简单的拆分函数来分隔值并插入您想要的值。由于这听起来像学校作业,我怀疑你会想要使用boost::
方法,这会使这件事变得相当琐碎。