『壹』 如何用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等可讀的字元而已