(C ++)如何继续读取文件的下一行,然后在文件末尾停止?

时间:2016-03-03 23:45:53

标签: c++

我很难找到一种方法将文件读到一行的末尾,例如

狗\ n 猫\ n 猪

并将每个char的char存储到数组中。虽然我可以在一行中执行此操作,但我无法确定如何移动到下一行(即dog to cat)并仍然注册文件的末尾。 这是我到目前为止的代码;

searchFile.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
            char next;
            while (searchFile.get(next))
            {
                if (next == '\n')  // If the file has been opened in
                {
                    for (int i = 0; i <= searchTempSize; i++) // ... For each character within the total length of the string ...
                    {
                        searchCharArray[i] = searchArray[i];
                        cout << searchCharArray[i] << endl;
                    }
                }     
            }

为了清晰起见编辑:我需要读取文件并将每个单词的字符存储为数组。但是,该文件包含新行上的每个单词。我似乎找不到一种方法来阅读下一行,而不是结束。

1 个答案:

答案 0 :(得分:4)

执行此操作的传统方法是使用std::getline。这将返回对流的引用;当转换为布尔值时,这指示流上的最后一个操作是否成功,例如,非文件结束。因此,要将所有行加载到字符串数组中,您可以执行以下操作:

std::string line;
std::vector<string> lines;
while (std::getline(searchFile, line)) {
  lines.push_back(line);
}