文件I / O行尾

时间:2015-11-09 01:24:19

标签: c++ arrays file-io while-loop ifstream

我正在尝试将文件中的文本读入数组,然后将每个数组索引的内容输出到输出文件。我需要读取/存储数据,直到它到达行尾,此时它应该重新开始读取/存储并重新使用该数组进行临时存储,只能输出到输出文件。

我不能使用getline函数,因为我的想法是稍后我将使用一些模型类来将各个单词存储为类的成员变量。我需要将单词分开以知道哪些单词被保存为哪些变量。出于这个原因,我需要能够识别相应的索引位置并获取它的内容。

我知道我的语法不正确所以我希望有人知道正确的语法来识别行尾。

这是我到目前为止所尝试的:

ifstream fin;

//open file... 

char next[20]; //creating an word array to hold the characters of a word.      
fin >> next;

while (!fin == '\n')   //<------ THIS IS WHAT I THINK THE PROBLEM IS.
                   //I KNOW ITS INCORRECT BUT DO NOT KNOW THE CORRECT WAY.
{                      
  //input words, store to array, and output to file
  fin >> next;
}

1 个答案:

答案 0 :(得分:0)

您应该使用std::string而不是char数组来处理任何大小的单词。 Streams还隐式转换为void*(C ++ 11或更高版本中的bool)以测试流是否仍然有效。

std::ifstream fin(filename);
std::string word;
while(fin >> word) {
    //do something with word
}