二进制文件的读写,转载的,供自己参考,没有整理

来源:互联网 发布:绝地求生优化工具 编辑:程序博客网 时间:2024/04/30 06:53

求vc读写二进制文件的代码按每两个字节读取二进制文件,然后存储成文本文件,文本文件的格式是每行100个数。然后反过来,读取文本文件,存储成二进制文件。

#include <stdio.h>

main()

{

      int M=10,N=15,i;

      long data_length=M*N;

      FILE *fp,*fp1;

      if((fp1=fopen("d:\\data\\15_10.txt","wt+")) == NULL)

     {

             printf("File 100-151.txt cannot be opened! \n");

              exit(0);

      }

     if((fp= fopen("d:\\data\\15_10.vct", "rb")) == NULL )

       {

             printf("File 100-151.vct cannot be opened! \n");

              exit(0);

         }

       {

               fseek(fp,0,SEEK_SET);

               for(i=1;i<=data_length;i++)

                   {

                       short tmp;

                        fread(&tmp, 2, 1,fp);

                         fprintf(fp1,"v[%5d]=%d ",i,tmp);

                          if(i%100==0)

                          fprintf(fp1,"\n");

                       }

                     fclose(fp);

          }

}

 

 

 

 

 

 

 

 

 

 

VC读写二进制文件

#include <stdio.h>

int main(int argc, char* argv[])
{
    FILE* fp = fopen("data.txt", "wb");
    int n = 10;
    float f = 123.4567;
    fwrite(&n, 1, sizeof(n), fp);
    fwrite(&f, 1, sizeof(f), fp);
    fclose(fp);

    n=0;
    f=0;
    fp = fopen("data.txt", "rb");
    fread(&n, 1, sizeof(n), fp);
    fread(&f, 1, sizeof(f), fp);
    fclose(fp);

    printf("n=%d, f=%f\n", n, f);

    return 0;
}

代码出自http://topic.csdn.net/u/20081215/22/035b47ef-7eee-4647-9e53-8f71b1ff1730.html

我的代码粘贴如下,以供参考:

写文件:

CFileDialog   FileDlg(FALSE,"txt",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT);  
 FileDlg.m_ofn.lpstrInitialDir="桌面:\\";  
 if(FileDlg.DoModal()==IDOK)  
 {     
  //CStdioFile f( FileDlg.GetPathName(),CFile::modeCreate | CFile::modeWrite | CFile::typeText );
  //f.WriteString( str );
  FILE* fp = fopen(FileDlg.GetPathName(),"wb");
  coor.m_Port[0]=0x61;//测试所有ab
  coor.m_Port[1]=0x62;//测试所有ab
  fwrite(&coor, 1, sizeof(coor), fp);//将coor内的数据保存为了二进制文件
  //fwrite(&f, 1, sizeof(f), fp);
  fclose(fp);
 }

读文件:

CString szFilter=_T("Txt files(*.txt)|*.txt|Ini files(*.ini)|*.ini|All files(*.*)|*.*||");
 CFileDialog dlg(TRUE,_T("txt"),NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter);
 if(dlg.DoModal()==IDOK){
  FILE* fp = fopen(dlg.GetPathName(), "rb");
  fread(&coor, 1, sizeof(coor), fp);
  fclose(fp);
 }