【发布时间】:2021-03-10 02:46:12
【问题描述】:
我正在尝试从文本文件中检索某些行。我正在使用:
#include <iostream>
#include <fstream>
using namespace std;
void parse_file()
{
std::ifstream file("VampireV5.txt");
string str= "Clan";
string file_contents;
while (std::getline(file, str))
{
file_contents += str;
file_contents.push_back('\n');
}
cout << file_contents;
file.close();
}
int main()
{
parse_file();
return 0;
}
我想得到唯一包含“Clan”的行,直到'\n'。我尝试在 while 循环中添加一个 if,但它没有返回任何内容。
有没有办法让它一次得到 1 行?
【问题讨论】:
-
你到底得到了什么?文件是否存在?成功打开了吗?你试过输出调试信息吗?
-
变量 file_content 包含文本直到其结束。我希望它只得到包含“Clan”这个词的那一行;
-
此外,您没有检查任何内容。考虑使用
if (str.find("Clan") == 0)来检查该行是否以您要查找的单词开头。 -
如果我理解得很好,你必须检查字符串“Clan”是否包含在字符串
str中。您可以找到相关信息here。然后,当你得到这一行时,你可以在 while 循环中中断 -
@Damien Merci beaucoup,这正是我所需要的。