0

C コードを書きましたが、正しく動作していないようです。私は POST フォームを持っており、出力を (& 制限文字に基づいて) トークン化し、これを出力テキスト ファイルに書き込もうとしています (データをコンマで区切っています)。

このコーディングに関する提案はありますか?

int main () 
{
    static const char Write2File[] = "csvoutput.txt";
    FILE *fp = fopen ( Write2File, "w" );
    char line[128], str[128];
    char *p, *pch;

    // while stdin is not null
    while ( fgets (line) != NULL )
    {   
        // tokenize the string based on & character
        pch = strtok (line,"&");

        // writes the token to file
        fputs(pch,fp);

        // writes a comma to  file
        fputc(',',fp);

        // writes the token to file
        fputs(pch,fp);

        // takes a new line break
        fputc('\n',fp);
    }
    fclose ( fp );
}
4

2 に答える 2

1

fgetsあなたはいくつかのパラメータで呼び出しています

char * fgets ( char * str, int num, FILE * stream );

POSTを取得したいですか?

char *slen;
char *post;
int len;

slen = getenv("CONTENT_LENGTH");
if (slen && sscanf(slen, "%d", &len) == 1) {
    post = malloc((size_t)len + 1);
    /* check malloc */
    fgets(post, len + 1, stdin);
    /* strtok here */
    free(post);
}
于 2013-05-20T10:17:20.097 に答える