c语言如何进行二进制文件的操作?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言如何进行二进制文件的操作?相关的知识,希望对你有一定的参考价值。
用位操作,用指针 参考技术A FILE *rfp = fopen(filename,"rb");//二进制读方式打开FILE *wfp = fopen(filename,"wb");//二进制写方式打开
二进制方式中,fread() fwrite() 两个函数用得比较多,适用于已知记录格式(如与结构体对应)
如果内容其实还是文本的,则依然可用fscanf() fprintf() fgets() fgetc() fputs() fputc()等方法 参考技术B 你想让其达到什么效果?追问
把文件内容读取出来,写到字符型数值中。
追答C中打开文件时有一个“选项”--->“rb”,例如,以二进制形式打开一个名为image.jpg的图片,那么这么写:
#include
void main()
FILE *BFile;
int bch;
char ch;
if(BFile=fopen("./image.jpg","rb"))
printf("OK\n");
else
printf("Open ERROR!\n");
bch=fgetc(BFile);
while(bch!=EOF)
ch=(char)bch;
printf("--->%c\n",ch);
bch=fgetc(BFile);
fclose(BFile);
这样没什么意义啊。
//读文件
CString str;
//AfxMessageBox(str);
CString strText = _T("");
while (file.ReadString(strText))
pListBox->AddString(strText);
str=str+strText;
我想用来修改这段代码。
没太看明白你这段代码想要干什么哈,有没有完整的代码呢?
c语言文件读写,如何正确的存取多位数(int)
最近在写一个验证的小程序,被多位数的存取难到了,研究了好几天,一无所获。 我想将一个6位的整型数据(如:123456)写入到一个新的文件中,我用fputc( )写入完成,可用fgetc( )调出来一看,都是错的,请教大侠,怎样才能正确的存储并读出6位数(当然,只要是多位数存取的就可以了),不甚感激。
参考技术A C语言将整形数据存储到文件中,可采用两种方法,1、二进制存取2、字符方式存取。
因存储方式的不同,读取也要采用相应的方式进行操作,否则不能正确得到存储的数据。
二进制存取
二进制方式是将原数据的内存格式存储到文件中,在同类型的机器上可以正确的读取。但如果换成不同类型的机器则会出现数据解释错误,因此,具有不可移植性。
这种方式,采用的存取函数相应为:fwrite()和fread().
如:
int
num=12345;
FILE
*fp=fopen(
"datafile",
"wb"
);
fwrite(
&num,
sizeof(int),
1,
fp
);
//将num数据写入文件
....
FILE
*fp=fopen(
"datafile",
"rb"
);
fread(
&num,
sizeof(int),
1,
fp
);
//读文件数据到num中
字符方式存取
字符方式是将数据的可见内容,以字符形式存储到文件中,可以在任何机器上阅读并读取,方便不同系统间的数据传递。
这种方式,采用的存取函数相应为:fprintf()和fscanf().
如:
int
num=0;
FILE
*fp=fopen(
"datafile",
"w"
);
fprintf(fp,
"%d\n",
num
);
//将num数据写入文件
....
FILE
*fp=fopen(
"datafile",
"r"
);
fscanf(fp,"%d",
&num
);
//读文件数据到num中
以上是关于c语言如何进行二进制文件的操作?的主要内容,如果未能解决你的问题,请参考以下文章