在c语言中如何打开二进制文件
#include<stdio.h>voidmain(){FILE*p;p=fopen("file1.txt","wb");fputs("china",p);}我这里不是用...
#include <stdio.h>
void main()
{
FILE *p;
p=fopen("file1.txt","wb");
fputs("china",p);
}
我这里不是用"wb“(二级制)写入的吗?
怎么我打开file1.txt文件还是显示出"china“啊?
请大家告诉我应该怎么修改啊? 展开
void main()
{
FILE *p;
p=fopen("file1.txt","wb");
fputs("china",p);
}
我这里不是用"wb“(二级制)写入的吗?
怎么我打开file1.txt文件还是显示出"china“啊?
请大家告诉我应该怎么修改啊? 展开
5个回答
展开全部
文本文件和二进制文件就是一个声明,指明了你应该以什么方式(文本方式/二进制)打开这个文件,用什么函数读写这个文件(读写函数),怎么判断读到这个文件结尾。
具体的说:
C规定了标准输入输出函数库,用fopen()函数打开文件。fopen()函数的调用方式一般为:
FILE *fp; // 定义一个文件类型的指针变量fp
fp=fopen(文件名,使用文件方式);
使用文件方式见下表:
"r"(只读) 为输入打开一个文本文件
"w"(只写) 为输出打开一个文本文件
"a"(追加) 为追加打开一个文本文件
"rb"(只读) 为输入打开一个二进制文件
"wb"(只写) 为输出打开一个二进制文件
"ab"(追加) 为追加打开一个二进制文件
"r+"(读写) 为读/写打开一个文本文件
"w+"(读写) 为读/写创建一个文本文件
"a+"(读写) 为读/写打开一个文本文件
"rb+"(读写) 为读/写打开一个二进制文件
"wb+"(读写) 为读/写创建一个二进制文件
"ab+"(读写) 为读/写打开一个二进制文件
展开全部
不知lz希望得到什么
二进制的意思是按照数据的原有二进制值写入
与文本模式的差别是不处理行尾
“china” 的 ASCII 就是这样子,还能是什么
二进制的意思是按照数据的原有二进制值写入
与文本模式的差别是不处理行尾
“china” 的 ASCII 就是这样子,还能是什么
追问
那能不能得到一大堆数字啊?
追答
如果只是显示的话,用 WinHex 或 UltraEdit 之类的 HEX 模式
如果是要文本模式显示数字,那只有自己进行转换了,转换成数字后写入
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char只有一字节,二进制形式就是ASCII码。你用int就会看出不一样了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
二进制文件,你写入ASCII 字符串,打开来看 仍然是可识别的字符串。
如果你用别的编码,例如 unicode,
你用 notepad 打开,仍然可以识别。因为 notepad 认识 unicode。
下面是写unicode 文件:
#include <stdio.h>
void main()
{
FILE *p;
char str[]="China";
int i,x;
p=fopen("file2.txt","wb");
x = 0xfeff;
fwrite(&x,2,1,p);
for (i=0;i<strlen(str);i++){
x = (str[i] - 0x20) | 0xff00;
fwrite(&x,2,1,p);
};
fclose(p);
}
-------
你可以自己编密码,例如:
x = (str[i] - 0x30) | 0xff00; 就不 认识了。
如果你用别的编码,例如 unicode,
你用 notepad 打开,仍然可以识别。因为 notepad 认识 unicode。
下面是写unicode 文件:
#include <stdio.h>
void main()
{
FILE *p;
char str[]="China";
int i,x;
p=fopen("file2.txt","wb");
x = 0xfeff;
fwrite(&x,2,1,p);
for (i=0;i<strlen(str);i++){
x = (str[i] - 0x20) | 0xff00;
fwrite(&x,2,1,p);
};
fclose(p);
}
-------
你可以自己编密码,例如:
x = (str[i] - 0x30) | 0xff00; 就不 认识了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是用二进制写入没有错,但你是用二进制读吗??
追问
是啊 可以做到吗?
追答
可以的,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询