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

本文介绍使用VC++进行二进制文件的读写操作,包括将数据存储为二进制文件及从二进制文件中读取数据的方法,并提供具体的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

求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.youkuaiyun.com/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);
 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值