-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 に答える