‘壹’ 如何用c语言实现十进制文件转化成二进制文件
10进制转化为2进制的算法非常简单,不断除以2,每次的余数为低位数,直到数为0。
可使用简单的递归实现这一过程。例程如下:
#include<stdio.h>
voidfun(inti)//定义变量i;
{
if(i>1)
fun(i/2);//变量i除2;
printf("%d",i%2);//输出i除以2的余数;
}
intmain(){
intn;
scanf("%d",&n);
fun(n);//调用递归函数
return0;
}
‘贰’ 在C语言中,怎么建立二进制文件
#include <stdio.h>
struct stu
{
char name[10];
int num;
int age;
char addr[15];
}boy,*qq;
void main()
{
FILE *fp;
char ch;
int i=1;
qq=&boy;
stu SStu;
{
strcpy(SStu.addr, ("Beijing\0"));
SStu.age = 20;
strcpy(SStu.name, "Wang Wu\0");
SStu.num = 9;
}
if((fp=fopen("二进制文件","w"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
return;
}
// rewind(fp);
// fseek(fp,i*sizeof(struct stu),0);
i=fwrite(&SStu, sizeof(stu), 1, fp);
fclose(fp);
if((fp=fopen("二进制文件","r"))==NULL)return;
fread(qq,sizeof(stu),1,fp);
printf("\n\nname\tnumber age addr\n");
printf("%s\t%3d %6d %s\n",qq->name, qq->num,qq->age, qq->addr);
fclose(fp);
}
运行成功,看看改动有多少。
‘叁’ 如何创建一个二进制文件用C语言调用.
所有文件都可以看成二进制型的
用f1=fopen("bbb.txt","wb");
来创建,和"w"区别在于
打印"\n"时
"w"是2字节,0x0d
0x0a
而"wb"是1字节,0x0a
二进制数据这样写入
比如是个int
a;
fwrite(&a,sizeof(int),1,f1);
数组就不用加&了
‘肆’ c语言怎么二进制文件操作
主要就是二进制文件的读写、结构体的定义和使用。
fopen函数 以 "ab+" 方式打开文件,用fwrite函数写入内容; "b" 方式打开文件,读取内容;
‘伍’ 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等可读的字符而已