2012-02-16 11 views
1
pthread_t  writeToFile = pthread_self(); 
    unsigned short iterate; 

    for (iterate = 0; iterate < 10000; iterate++) 
    { 
     fprintf (fp, " %d ", iterate,  4); 
     fprintf (fp, " %lu ", writeToFile, sizeof (pthread_t)); 
     fprintf (fp, "\n", writeToFile, 1); 
    } 

のfprintf()fp = fopen ("xyz", "w");警告:フォーマットのためにあまりにも多くの引数 - メインで

警告:warning: too many arguments for format

ここから:http://www.cplusplus.com/reference/clibrary/cstdio/fprintf/

私のコードで何が悪いですか?

gcc version 4.5.0

答えて

3

のは、あなたの最初のfprintfを見てみましょう:" %d "。 1つの引数(int)が必要ですが、2回繰り返すと4になります。

データのサイズを追加するようですが、そうしないでください。おそらく次のようになります:

fprintf (fp, " %d ", iterate); 

他の2つの文では、ファイルに何を入れたいか明確ではありません。

+0

まあ、writeToFile変数にはスレッドIDが含まれています。とにかく、助けてくれてありがとう。 –

+0

誰かのように、fprintfの使用法をfwriteと混ぜたような感じです... – PlasmaHH

+0

@PlasmaHH fprintfは、同時にいくつかのことをファイルに書き出します。 fwriteは1つしか書きませんか? –

関連する問題