求vc二进制文件读写代码

求vc读写二进制文件的代码按每两个字节读取二进制文件,然后存储成文本文件,文本文件的格式是每行100个数。然后反过来,读取文本文件,存储成二进制文件。谢谢!速度快的,效果... 求vc读写二进制文件的代码
按每两个字节读取二进制文件,然后存储成文本文件,文本文件的格式是每行100个数。
然后反过来,读取文本文件,存储成二进制文件。
谢谢!
速度快的,效果好的再加分,谢谢!只要是c语言的就行了。

请按照题目要求写,不要复制别的地方的东西过来。

要求是按每2个字节读一个数,存成文本文件
以及读文本文件,按2个字节一个数存成二进制文件
展开
 我来答
百度网友6d9d9b187
推荐于2018-03-19
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
#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);
}

}
qq72767
2007-09-06
知道答主
回答量:8
采纳率:0%
帮助的人:0
展开全部
说白了就是把N换成二进制,然后把1位上的3的幂输出

比如20=(10100)2
所以是{9,81}

具体算法要用到高精度计算3的幂,换成二进制就用除2倒取余,复杂度O(l*logn),l是计算高精度的复杂度。

手头没有C++,不想写了,毕竟用记事本写没有缩进很不爽

include <iostream>
const int max_bit=100;
int num[max_bit]={1};

int main(){
using namespace std;
unsigned long n;
int l=0;
cin>>n;
while (n>0){
if (n%2==1){
for (int i=l;i>=0;i--) cout<<num[i];
cout<<endl;
}
n\=2;
for (int i=0;i<=l;i++) num[i]*=3;
for (int i=0;i<l;i++)
if (num[i]>=10) {
num[i+1]+=num[i]\10;
num[i]%=10;
}
while (num[l]>=10){
num[l+1]+=num[l]\10;
num[l++]%=10;
}
}
}
大概就是这么回事,这个程序应该不能编译吧,用notepad写的…很久不写程序了,一些基本的语法都未必正确……你自己改吧。
高手表踩我…
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
985967518
推荐于2016-01-17 · 知道合伙人教育行家
985967518
知道合伙人教育行家
采纳数:18027 获赞数:109858
14年本科毕业于河南理工大学,至今就读于河南理工大学攻读硕士学位,从事编程学习已有5年。

向TA提问 私信TA
展开全部

unsigned long long int buffer;

FILE *file1 = fopen("xxxxx", "rb");

FILE *file2 = fopen("xxxxxxx", "wb");

fread(&buffer, 8, 1, file1);//读文件

fwrite(&buffer, 8, 1, file2);//写文件

//参考代码
#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);
 }

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
告利贺煜祺
2020-04-08 · TA获得超过4407个赞
知道大有可为答主
回答量:3151
采纳率:28%
帮助的人:448万
展开全部
用c的话
fprint
fscanf
等等
你可以看看书啊
就是文件那章的
。。。
若是c++的话。。如下
#include
using
namespace
std;

//
authinfo
是自定义的
struct
struct
authinfo
auth_info;
string
susername,
spassword;
/*
写文件
*/
//
清零
zeromemory
(
&auth_info,
sizeof
(
auth_info
)
);
susername
=
“tanggaowei@gmail.com”;
spassword
=
“000000″;
//
内存拷贝
memcpy(auth_info.username,
susername.c_str(),
susername.length());
memcpy(auth_info.password,
spassword.c_str(),
spassword.length());
//
定义打开输出流
ofstream
fout(”mbc.dat”,
ios::binary);
//
写入
fout.write((char
*)(&auth_info),
sizeof(auth_info));
//
关闭输出流
fout.close();
/*
读文件
*/
zeromemory
(
&auth_info,
sizeof
(
auth_info
)
);
ifstream
fin
(
“mbc.dat”,
ios::binary
);
fin.read((char
*)(&auth_info),
sizeof(auth_info));
susername
=
auth_info.username;
spassword
=
auth_info.password;
zeromemory
(
auth_info.username,
100
);
//
authinfo.username[100]
zeromemory
(
auth_info.password,
50
);
//
authinfo.password[50]
memcpy(auth_info.username,
susername.c_str(),
susername.length());
memcpy(auth_info.password,
spassword.c_str(),
spassword.length());
fin.close();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6452b3628
2007-09-06 · TA获得超过1.7万个赞
知道大有可为答主
回答量:4881
采纳率:0%
帮助的人:5304万
展开全部
你说用vc,那么是使用c方法,c++方法或者是mfc方法呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式