c語言寫入二進制文件
1. 用c語言向二進制文件里添加數據
主要就是這兩句:
FILE *pf = fopen("XXX","wb+");
fwrite(……);
這樣就可以把數據流寫入文件尾部
2. C語言 數據寫入二進制文件錯誤
二進制文件你用記事本打開應該就只能看到亂碼吧,記事本不是打開文本文件(ASCII文件)嗎。只要你寫入正確,讀出來也會沒問題的。
c:\delete\litl1.dat這樣寫路徑好像不對,在C語言中應該寫成:c:\\delete\\litl1.dat。因為在C語言中兩個'\'才相當於一個單撇號。
加上頭文件:#include<stdlib.h>,exit()函數用到。
還有,最好不要在C盤下操作,我的系統在C盤下刪除文件夾及創建都需要管理員許可權的。如果真想按你寫的路徑創建這個文件,delete這個文件夾必須存在。
試試這樣:
為了證明我的說法,我又定義了一個數組,把文件中數據讀入這個數組並輸出.
#include "stdio.h"
#include<stdlib.h>
main()
{FILE *fp;
int a[10],*p=a;
if((fp=fopen("d:litl1.dat","wb+"))==NULL)//wb改成wb+,這樣寫完以後進行讀操作
{
printf("file not open!\n");
exit(0);
};
while(p<a+10)
scanf("%d",p++);
printf("\n\n\n");
p=a;
for(;p<a+10;p++)
printf("%5d",*p);
printf("\n");
fwrite(a,sizeof(int),10,fp);
int b[10],i;
rewind(fp);//使文件指針指向文件開始
fread(b,sizeof(int),10,fp);
for(i=0;i<10;i++)
printf("%5d",b[i]);
printf("\n");
fclose(fp);
}
3. c語言 二進制文件讀和寫
二進制讀寫應該在打開文件時加「b」
if((fp=fopen(fpname,"w+b"))==NULL)
if((fp=fopen(fpname,"r+b"))==NULL)
4. C語言寫出一個建立並寫入數據的二進制文件,文件後綴為.dat。
#include<stdio.h>
intmain(intargc,char**argv)
{
FILE*fp;
fp=fopen("test.dat","wb");//打開,沒有則創建,有則清空
fwrite(&fp,4,1,fp);//寫入
fclose(fp);//關閉
return0;
}
5. 用c語言把一個二進制比如10011按位存儲進數組里 比如a[0]=1,a[1]=0,並實現加1運算
下面的程序可搜此以讀入一個二進制數,並完成+1的操作,但是必須保證最高位沒有進位。
#include<stdio.h>
intmain()
{int彎襪i;
chara[101];
scanf("%s",a);
for(i=0;a[i];i++);
a[--i]++;
世鬧迅while(i>0&&a[i]>'1')
{a[i]='0';
a[--i]++;
}
printf("%s
",a);
return0;
}