if (int nRead = fr.Read(pRead, fr.GetLength()-37336))
{
 for (int n = 0; n <nRead; )
{
pbuffer[0]=pRead[n];
            pbuffer[1]=pRead[n+1];
sprintf(pBuf, "%02d ",*(short int*)pbuffer);
 fw.Write(pBuf, 3);//写第n秒垂直向数据
fw.Write("    ", 4);
这是我程序的一部分,实现功能是将二进制存储的数据转换为ASCII码,然后写入文本文件,现在的问题是,输出的结果前面自动补零了,因为我输出的时候设置了输出格式每个ASCII码字符占3个字符,结果7就显示为007了,怎么能去掉空格呢?

解决方案 »

  1.   

    先把字符串转换为CString 类型,再用CString::TrimLeft()方法
      

  2.   

    atoi
    then sprintf(, "%d")
      

  3.   

    sprintf(pBuf, "%d ",*(short int*)pbuffer);
      

  4.   

    sprintf(pBuf, "%d ",*(short int*)pbuffer);
    然后判断
    >0就前面+空格,<0就直接输出
      

  5.   

    1.先把你得到的结果转变成INT型(用atoi())会自动去掉前面的0
    2.再把结果变成你想要的形式
    3.最笨的办法FIND(1,'0')找到后去掉
    字符串处理三个函数足够了:Left(),Right(),Mid(),