我正在尝试解析.html文件以查找某个标记,然后从我到达的位置开始写入文件:
std::fstream file;
file.open(".\\img\\file.html", std::fstream::in || std::fstream::out);
if (file.is_open())
{
char s[1024];
bool f = false;
while(f != true)
{
file.getline(s,1024);
if (strstr(s,"<table>") != NULL)
f = true;
}
file << "Something";
}
else
printf("Error opening file.html\n");
从调试我可以确认我找到了所需的标签,但没有写入文件,我做错了什么?
答案 0 :(得分:2)
file.open(".\\img\\file.html", std::fstream::in || std::fstream::out);
应该是
file.open(".\\img\\file.html", std::fstream::in | std::fstream::out);
您不需要逻辑运算符或||
,但需要按位或|
但正如其他评论员所说,使用<<
运算符只会覆盖文件的那一部分,如果你想插入一些东西,你需要在插入点之后复制所有内容。最好是使用建议的库或创建临时文件,并在完成所有修改后更改原始文件。