① c语言如何读写二进制
内容的写入分两种,a.字符 b.字节
前者可以写一些字符串,后者主要用来内写入 视频,音频那些数据容.
就像你用记事本打开 *.mp3文件一样会出现乱码。
而如果你想写入字符串也出现乱码,则应该修改写入时的字符编码格式。
有Unicode,utf-8,ansi,gbk等等。而windows有自己默认的读取格式,所以当你写入的格式与默认格式不相同时就会出现用记事本打开时出现乱码了。
另一种情况是在写入字符串之前对字符串进行加密。
如果需要具体的例子,可以M我QQ
② vb如何编程二进制文件
1、用open打开二进制文件,用put写文件,用get读文件。
2、所需工具:vb6
3、示例:(二进制文件的写出与读取)
PrivateSubCommand1_Click()
Open"c:111.txt"ForBinaryAccessWriteAs#1
DimsAsString
Dimn1AsInteger,n2AsLong
Dimf1AsSingle,f2AsDouble
s="12345"
n1=10
n2=50000
f1=0.1
f2=0.0000000001
Put#1,,s
Put#1,,n1
Put#1,,n2
Put#1,,f1
Put#1,,f2
Close#1
Prints,n1,n2,f1,f2
EndSub
PrivateSubCommand2_Click()
Open"c:111.txt"ForBinaryAccessReadAs#1
DimsAsString
Dimn1AsInteger,n2AsLong
Dimf1AsSingle,f2AsDouble
s=String(5,0)
Get#1,,s
Get#1,,n1
Get#1,,n2
Get#1,,f1
Get#1,,f2
Close#1
Prints,n1,n2,f1,f2
EndSub
4、注意:读取字符串时,提前用string()函数生成要读取的长度的串,或者使用定长串。
③ 如何创建一个二进制文件用C语言调用.
所有文件抄都可以看成二袭进制型的
用f1=fopen("bbb.txt","wb");
来创建,和"w"区别在于
打印"\n"时
"w"是2字节,0x0d 0x0a
而"wb"是1字节,0x0a
二进制数据这样写入
比如是个int a;
fwrite(&a,sizeof(int),1,f1);
数组就不用加&了
④ vb 二进制文件读写
Dim bytes() As Byte
dim lLength as Long
Open "c:\main.exe" For Binary As #1 '读取字节
lLength=LOF(1)
ReDim bytes(1 To lLength) As Byte
Get 1, , bytes
Close #1
'将文件以十六进制方式输出到Text1中,这个过程很耗时,130K的文件大概需要2分钟,而且越到后面速度越慢
Dim strTmp As String
For i = 1 To lLength
strTmp = strTmp & " " & Hex(bytes(i))
DoEvents
Next
Text1.Text = strTmp
Open "d:\abcd.exe" For Binary As #1 '将字节转存
Put 1, , bytes
Close #1
End Sub
⑤ vb以二进制读取和写入文件
为什么你认为是像0,1这样的?你用的是字节数组,数组每个元素的值在0~255之间!写的话用Put,而不是write!
⑥ C++中怎样进行二进制文件的读写
#include
<fstream>
写
二进制文件
应该使用ofstream类,文件的打开模式一定要是
binary,如果传入的不是
binary,
文件将以ASCII方式打开。
下面是示例代码,用于写入文件。
std::ofstream
fout("a.dat",
std::ios::binary);
int
nNum
=
20;
std::string
str("Hello,
world");
fout.write((char*)&nNum,
sizeof(int));
fout.write(str.c_str(),
sizeof(char)
*
(str.size()));
fout.close();
而写
文本文件
则比较简单,如下:
std::ofstream
fout("b.dat");
int
nNum
=
20;
std::string
str("Hello,
world");
fout
<<
nNum
<<","<<
str
<<
std::endl;
fout.close();
读二进制文件
读取二进制文件可以使用ifstream
类来进行,文件的打开模式一定要是
binary,如果传入的不是
binary,
文件将以ASCII方式打开。
下面是示例代码:
std::ifstream
fin("a.dat",
std::ios::binary);
int
nNum;
char
szBuf[256]
=
{0};
fin.read((char*)&nNum,
sizeof(int));
fin.read(szBuf,
sizeof(char)
*
256);
std::cout
<<"int
=
"<<
nNum
<<
std::endl;
std::cout
<<"str
=
"<<
szBuf
<<
std::endl;
fin.close();
二进制文件是指包含在
ASCII及扩展
ASCII
字符中编写的数据或程序指令的文件。
计算机文件
基本上分为二种:二进制文件和
ASCII(也称
纯文本文件
),图形文件及
文字处理
程序等
计算机程序
都属于二进制文件,这些文件含有特殊的格式及计算机代码。ASCII
则是可以用任何文字处理程序阅读的
简单文本
文件。
简单的说
,如果一个文件专门用于存储文本字符的数据,没有包含字符以外的其他数据,我们就称之为文本文件,除此之外的文件就是二进制文件。
广义的二进制文件即指文件,由文件在外部设备的存放形式为二进制而得名。狭义的二进制文件即除文本文件以外的文件。文本文件是一种由很多行字符构成的计算机文件。文本文件存在于
计算机系统
中,通常在文本文件最后一行放置文件结束标志。文本文件的编码基于字符
定长
,
译码
相对要容易一些;二进制文件编码是变长的,灵活利用率要高,而译码要难一些,不同的二进制文件译码方式是不同的。
从本质上来说他们之间没有什么区别,因为他们在硬盘上都有一种的存放方式--二进制,但是如果要对他们有些区分的话,那可以这样理解。每个字符由一个或多个字节组成,每个字节都是用的-128—127之间的部分数值来表示的,也就是说,-128——127之间还有一些数据没有对应任何字符的任何字节。如果一个文件中的每个字节的内容都是可以表示成字符的数据,我们就可以称这个文件为文本文件,可见,文本文件只是二进制文件中的一种特例,为了与文本文件相区别,人们又把除了文本文件以外的文件称为二进制文件,由于很难严格区分文本文件和二进制文件的概念,所以我们可以简单地认为,如果一个文件专门用于存储文本字符的数据,没有包含字符以外的其他数据,我们就称之为文本文件,除此之外的文件就是二进制文件。
⑦ C 语言向文件写入二进制信息
不清楚你是用什么工具打开文件查看的,如果是记事本的话,是按照ASCII方式显示的,所以你看到的内容是Administrator 123456 0,你可以使用UltraEdit工具打开UserInfo.bin,有 十六进制 和 文本方式 两种方式可以查看文件内容。
⑧ c语言如何创建二进制文件
在windows系统下,C语言打开文件的"文本文件"方式和"二进制文件回方式"的区别是:
在文本文件模式下:当给文件写入'\n'时,实答际会写入'\r''\n',读文件时如果读到\r\n,会丢弃\r只保留\n, 除此以外,和二进制方式没有任何区别
举例:
FILE* fp;
fp = fopen("123", "w");
fputc(10,fp); //10就是\n 但实际上会对文件写入\r\n,你用16进制编辑器打开123,会看到0D0A 两个字符
fclose(fp);
甚至这样:
fp = fopen("123", "w");
int n = 1116682; //这是16进制的0x110A0A
fwrite(&n, 4, 1, fp); //因为那数字字节里有0A,写入时会挤进去0D实际写入0D0A0D0A1100
fclose(fp);
而这样就只写入0A
fp = fopen("123", "wb");
fputc(10,fp); //只写入0A
至于你看到的"仍是文本文件",是因为你对文件写入的内容就是些文本而已
所有文件都是二进制的,文本文件只是文件的内容都是些ASCII或者unicode等可读的字符而已
⑨ 二进制文件的如何使用语句操作二进制文件
我们将上面的那个二进制文件保存为:TestBin.Bin 来举例。读取和写入二进制其实是两个很类似的操作,了解了其中之一,另一个也就不难了。
二进制文件我们通常使用直接读取方式,Open 语句可以写为:
引用:
Open( 12 , File = 'TestBin.Bin' , Access = 'Direct' , Form = 'Unformatted' , RecL = 4 )
上面的 Access 表示直接读取方式,Form 表示无格式储存。比较重要的是 RecL 。我们读取数据时,是用记录来描述单位的,每一次读入或写入是一个记录。记录的长度在 Open 时饥碰就确定下来,以后不能改变。如果需要改变,只能 Close 以后再此 Open。记录长姿巧度在某些编译器下表示读取的 4 字节长度的倍数,规定为 4 表示记录长度为 16 字节。有些编译器下就直接迹肢键表示记录的字节数,规定为 4 则表示记录长度为 4 字节。这个问题需要参考编译器手册。在 VF 系列里,这个值是前面一个含义。可以通过设置工程属性的 Fortran,Data,Use Bytes as RECL= Unit for Unformatted Files 来改变,使之成为后一个含义。在命令行模式下,则使用 /assume:byterecl 这个编译选项。确定 RecL 大小是我们需要做的事情,一般来说,不适合太大,也不适合太小。还需要结合数据储存方式来考虑。太小的话,我们需要执行读写的次数就多,太大的话,我们就不方便操作小范围的数据。有时候我们甚至会分多次来读取数据,每一次的 RecL 都不同。对于上面的 TestBin.Bin 文件来说,它比较简单,我以 16 字节长度和 8 字节长度两种读取方式来演示,你甚至可以一次 32 个字节长度全部读完。