2016-11-04 7 views
0

addressから始まるbyte_lengthバイトをログファイルに出力するにはどうすればよいですか。マルチクライアントチャットプログラム:すべてのクライアントにメッセージを送信する

私はこれを試しましたが、ポインタの逆参照が文字列リテラルではないため、動作しませんでした。

FILE * userlog; 
void debug_message(int flag, void *address, int byte_length){ 
     for (i=0; i<byte_length; i++){ 
     fprintf(userlog, *((char*)address+i))); 
} 

私もこれを試してみましたが、それがコンパイルされないでしょう。あなたが本当に書きたい場合は、The Man

上で見ることができるよう

FILE * userlog; 
void debug_message(int flag, void *address, int byte_length){ 
     for (i=0; i<byte_length; i++){ 
     char character[1]; 
     character[0]= *((char*)address+i)); 
     fprintf(userlog, character); 
} 
+0

'debug_mess年齢。これを読んでください:[mcve]。 –

+1

[fprintf'](http://www.cplusplus.com/reference/cstdio/fprintf/)ではなく 'fwrite(address、1、byte_length、userlog); –

+0

ところで:質問のタイトルが質問に一致しません。 –

答えて

1

fprintf 2番目のパラメータは、書式指定子であります単一文字/バイト%c

FILE * userlog; 
void debug_message(int flag, void *address, int byte_length){ 
     for (i=0; i<byte_length; i++){ 
     char character = *((char*)address+i)); 
     fprintf(userlog, "%c", character); 
} 
関連する問題