void CTest111Dlg::OnButton1() 
{
     // TODO: Add your control notification handler code here
    char ch;
    FILE *in ,*out;
    in=fopen("D:\\a1.wav","rb");
    out=fopen("D:\\a.txt","w");
    while (!feof(in))
{
   fread(&ch,1,1,in);
            fwrite(&ch,1,1,out);
          }
     fclose(in);
     fclose(out);
}可是我打开 a.txt 出现是乱吗?
我希望的是以 16 进制 显示,
各位大哥,我的程序还要怎么改写呢?
谢谢!

解决方案 »

  1.   

    谢谢 cpio 大哥!
    这个代码要怎么写啊?
    可以举个例子吗?
      

  2.   

    void CTest111Dlg::OnButton1() 
    {
    // TODO: Add your control notification handler code here
    char ch[3];
    char chr;
    FILE *in ,*out;
    in=fopen("D:\\a1.wav","rb");
        out=fopen("D:\\a.txt","w");
    while (!feof(in))
    {
    fread(&ch,4,1,in);
            chr=ch[0]^3+ch[1]^2+ch[2]^1 +ch[3]^0;
            fwrite(&chr,1,1,out);
        }    fclose(in);    fclose(out);
    }为什么这样出现的还是乱吗呢?
    谢谢!
      

  3.   

    首先你并没有把wave的头读出来  wave文件里的数据存储可能是 8  16或者32位的你按8位的读可能把将来需要读出来的数据错位了。
      

  4.   

    为什么不用结构体呢,我最近也在完文件的内容,利用结构体就比较容易定位啊,找文件头也容易
    for(i=0;i<40;i++)
    fread(&stu[i],sizeof(struct stu),1,fp);
    for(i=0;i<40;i++)
    fwrite(&stu[i],sizeof(struct stu),1,fp);
      

  5.   

    把wav这样的二进制文件读到记事本有什么意义呢?