-3

我正在尝试解析 .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");

从调试中我可以确认我找到了所需的标签,但没有写入文件,我做错了什么?

4

1 回答 1

2
file.open(".\\img\\file.html", std::fstream::in || std::fstream::out);

应该

file.open(".\\img\\file.html", std::fstream::in | std::fstream::out);

你不想要逻辑运算符 or||但按位 or|

但正如其他评论员所说,使用<<运算符只会覆盖文件的那部分,如果你想插入一些东西,你需要在插入点之后复制所有内容。最好使用建议的库或创建一个临时文件并在完成所有修改后更改原始文件。

于 2013-10-11T17:19:00.937 回答