2
    string replace_strings (FILE *in, FILE *out, char *what, char *repl)
{
    int x = strlen(what);
    int z = strlen(repl);
    string newWhat(what, x);
    string newRepl(repl, z);
    char c;
    char *str; //наш буффер
    int i = 0;
    size_t found;

このようにするのは悪い決断です、私は知っています

    while(!feof(in))
    {
        while((c!='\0') && (i<=255))
        {
            str[i] = fscanf(in, "%c", c);
            i++;
        }
        string newStr (str, i);
        while(found != string::npos)
        {
            found = newStr.find(newWhat);
            newStr.replace(found, newWhat.length(), newRepl);
        }

        fprintf(out, "%s", newStr.c_str());

セグメンテーション違反を返します。何が問題なのですか? 私は何をすべきか?みんな助けて

4

1 に答える 1

2

にメモリを割り当てる必要がありますstrstringstreamを使用し、ぎこちないバッファは忘れてください。

于 2013-10-27T19:56:44.893 に答える