大家好!小妹问一下我现在有一个结构video,video结构中的数据是从一个二进制文件中读出的,现在想通过sprint函数格式化一下,使得存到txt文件中的数据可以正常显示出来。该如何做。如:
char c[];
sprintf(c,“%u”,video);
这个sprintf如何定义才可以达到目的。

解决方案 »

  1.   

    char  c[100];
    sprintf(c,"video.x: %i, video.y: %i, ...",video.x,video.y);
      

  2.   

    读文件的时候就指明是打开二进制文件,这样read后就可以直接用sprintf了。这是我在linux下open文件后就可以直接用sprintf,不知道windows 能不能
      

  3.   

    May you should use sscanf instead of sprintf.
      

  4.   

    结构中的bool型在sprintf函数中用%+什么格式化
      

  5.   

    sscanf函数作什么用的。具体可以讲一下吗?谢谢!
      

  6.   

    我想你需要的是标准输入sscanf,而不是标准输出sprintf
    Details see MSDN.
      

  7.   

    sprintf(buf,"video.cCommandID:%s,video.cDuringAlarm:%s,video.cVideoType:%s,video.wFrameType:%d,video.dwFrameIndex:%d,video.dwTotalFrameNum:%d,video.dwFrameOffset:%d,video.dwFrameSize:%d,video.wImageWidth:%d,video.wImageHeight:%d,video.bStretchMode:%d",

    video->cCommandID,video->cDuringAlarm,video->cVideoType,video->wFrameType,video->dwFrameIndex,video->dwTotalFrameNum,video->dwFrameOffset,video->dwFrameSize,video->wImageWidth,video->wImageHeight,video->bStretchMode); 大家帮我看看这句话有问题吗?运行时总是出错!
      

  8.   

    我现在需要将数据写入文件,是需要用到sscanf吗?我看一下msdn吧!
      

  9.   

    如果你是用 FILE* 写文件的话,可以直接用 fprintf
    另外你的 sprintf 有问题,我看那个 cCommandID 应该是 int 型的吧,怎么可以用 %s ?
      

  10.   

    cCommandID 为CHAR类型,我现在的问题是,如果sprintf函数中包含一个%格式化符号可以,如果有多个运行的时候就会提示错误。
      

  11.   

    sprintf(buf,"video.cCommandID:%s,video->cCommandID); 
    如果是这样就没有问题,正常,如果加入多个%问题就来了。
      

  12.   

    我的buf数组的下标应该定义多少呢.
      

  13.   

    运行时出错,应该是格式化不对应。
    你可以使用排除法,一个一个增加,看看加到那个时有问题。bool型打印出来成了int型,有意义吗?
    建议: "%s",bVar?"True":"False"