多客户聊天程序:向所有客户发送消息

时间:2016-11-04 07:57:29

标签: c arrays

如何从指针byte_length开始将address个字节打印到日志文件中。

我尝试了这个,但它没有用,因为取消引用指针不是字符串文字。

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

我也尝试了这个,但它不会编译:

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);
}

1 个答案:

答案 0 :(得分:1)

fprintf第二个参数是格式说明符,您可以在The Man

上看到

如果你真的想写一个字符/字节%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);
}