求vc二进制文件读写代码
求vc读写二进制文件的代码按每两个字节读取二进制文件,然后存储成文本文件,文本文件的格式是每行100个数。然后反过来,读取文本文件,存储成二进制文件。谢谢!速度快的,效果...
求vc读写二进制文件的代码
按每两个字节读取二进制文件,然后存储成文本文件,文本文件的格式是每行100个数。
然后反过来,读取文本文件,存储成二进制文件。
谢谢!
速度快的,效果好的再加分,谢谢!只要是c语言的就行了。
请按照题目要求写,不要复制别的地方的东西过来。
要求是按每2个字节读一个数,存成文本文件
以及读文本文件,按2个字节一个数存成二进制文件 展开
按每两个字节读取二进制文件,然后存储成文本文件,文本文件的格式是每行100个数。
然后反过来,读取文本文件,存储成二进制文件。
谢谢!
速度快的,效果好的再加分,谢谢!只要是c语言的就行了。
请按照题目要求写,不要复制别的地方的东西过来。
要求是按每2个字节读一个数,存成文本文件
以及读文本文件,按2个字节一个数存成二进制文件 展开
5个回答
展开全部
#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);
}
}
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);
}
}
展开全部
说白了就是把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写的…很久不写程序了,一些基本的语法都未必正确……你自己改吧。
高手表踩我…
比如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写的…很久不写程序了,一些基本的语法都未必正确……你自己改吧。
高手表踩我…
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2016-01-17 · 知道合伙人教育行家
关注
展开全部
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);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用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();
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();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你说用vc,那么是使用c方法,c++方法或者是mfc方法呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询