我很难找到一种方法将文件读到一行的末尾,例如
狗\ 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;
}
}
}
为了清晰起见编辑:我需要读取文件并将每个单词的字符存储为数组。但是,该文件包含新行上的每个单词。我似乎找不到一种方法来阅读下一行,而不是结束。
答案 0 :(得分:4)
执行此操作的传统方法是使用std::getline
。这将返回对流的引用;当转换为布尔值时,这指示流上的最后一个操作是否成功,例如,非文件结束。因此,要将所有行加载到字符串数组中,您可以执行以下操作:
std::string line;
std::vector<string> lines;
while (std::getline(searchFile, line)) {
lines.push_back(line);
}