std :: fstream不写入.html文件

时间:2013-10-11 16:23:50

标签: c++ html fstream

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

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

1 个答案:

答案 0 :(得分:2)

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

应该是

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

您不需要逻辑运算符或||,但需要按位或|

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