如何跳过从fstream txt文件中获取的C ++中的整数?

时间:2010-03-09 02:21:08

标签: c++

我需要创建一个使用循环的函数。此函数将打开一个文本文件,然后必须能够跳过可变数量的前导随机整数。该程序必须能够处理任意数量的前导随机整数。

示例如果打开的文件在第一行读取此内容:

100 120 92 82 38 49 102

并且为SKIP_NUMBER变量分配3函数将获取的数字为82。

该函数必须继续每隔SKIP_NUMBER获取整数,直到它到达文件末尾。然后将从txt文件中获取的这些整数放入另一个文本文件中。

请帮助我真的迷失了如何创建这个循环! :d

到目前为止,这是我的功能......

//Function skips variables and returns needed integer
int skipVariable (int SKIP_NUMBER)
{

return 0; //temporary return
}

这些是我的程序变量:

// initialize function/variables

ifstream fin;
string IN_FILE_NAME, OUT_FILE_NAME;
int SKIP_NUMBER;

3 个答案:

答案 0 :(得分:2)

如果我是你,我会像这样处理这个问题:

1. create ifstream object m_strm
2. open the file
3. whie (m_strm.good())
    (a.) use ifstream's getline() to read a line from the file
    (b.) use strtok() function to tokenize the string (for whitespaces)
    (c.) maintain a counter when you keep getting tokens
    (d.) Now you can skip whenever you like.
4. Done with file, so close the stream!

答案 1 :(得分:0)

这有点强烈的家庭作业,特别是因为快速检查在其他论坛上显示了类似的帖子。

我没有给你答案,但是一个基本的思维过程就像......

  1. 用fin打开文件
  2. 检查失败
  3. 虽然不在档案的末尾:
  4. 读入变量
  5. 增加跳过计数器
  6. if(counter> SKIP_NUMBER) - 写出读入值并重置计数器。
  7. 还有其他可行的方法可以解决这个问题,但这应该是有点可靠的。你必须自己完成这项工作,而且我对大多数陷阱都不是很具体。要彻底。

答案 2 :(得分:0)

我建议如何处理这个问题:

  1. 编写一个函数来读取文件中的所有数字,并将它们存储在数组/向量/列表/等等中。
  2. 编写一个遍历数据结构的函数,选择每个第(N + 1)项,并将它们写入文件。
  3. 当然,有很多方法可以解决这个问题。