當前位置:首頁 » 編程語言 » c語言讀文件二進制文件

c語言讀文件二進制文件

發布時間: 2022-04-15 08:20:54

c語言怎麼用二進制方式讀取文件

C語言中二進制文件的讀取要用fread和fwrite來實現。 fwrite()與fprintf()是不同的。 fwrite將寫入的數據作為文件的磁碟內容保存。fprintf將寫入的數據的每個字元所對應的ASCII碼作為文件的磁碟內容保存。fprintf做了一個轉換的工作。

⑵ c語言怎麼二進制文件操作

主要就是二進制文件的讀寫、結構體的定義和使用。
fopen函數 以 "ab+" 方式打開文件,用fwrite函數寫入內容; "b" 方式打開文件,讀取內容;

⑶ c語言如何讀寫二進制

詳細:http://hi..com/gibbon_ho/blog/item/9ca853e68447c42bb9382086.html

我一直覺得二進制文件讀寫是個很容易的事,所以一直沒在意,最近在寫一個http客戶端,實現文件下載的時候,發現總有問題,後來才發現是忘記寫文件用二進制方式,慚愧的很啊。然後,就在網上搜索了一下,發現通過C語言實現二進制文件讀寫的資料居然出奇的少,這讓我很憤怒,因為雖然這東西很簡單,但是對於初學者,往往會需要花很長的時間去弄,一旦明白,又發現花的時間很不值得,罷了,這里通過一個文件拷貝的例子來講講二進制文件的讀寫吧。先介紹函數,我們一共要用到三個函數,fopen,fread,fwrite。二進制讀寫的順序是用fopen以二進制方式打開讀寫文件,然後使用fread和fwrite兩個函數將數據寫入二進制文件中。下面我們看看一個拷貝程序的源碼

Copy.c:#include <stdio.h>

#include <stdlib.h>

#define MAXLEN 1024

int main(int argc, char *argv[])

{

if( argc < 3 )

{

printf("usage: %s %s\n", argv[0], "infile outfile");

exit(1);

}

FILE * outfile, *infile;

outfile = fopen(argv[2], "wb" );

infile = fopen(argv[1], "rb");

unsigned char buf[MAXLEN];

if( outfile == NULL || infile == NULL )

{

printf("%s, %s",argv[1],"not exit\n");

exit(1);

}

int rc;

while( (rc = fread(buf,sizeof(unsigned char), MAXLEN,infile)) != 0 )

{

fwrite( buf, sizeof( unsigned char ), rc, outfile );

}

fclose(infile);

fclose(outfile);

system("PAUSE");

return 0;

}

⑷ c語言讀二進制文件

#include <stdio.h>

main( )
{
FILE *fp;
float data[6];
int i;
/*打開文件*/
fp=fopen("yibin","rb");
if(fp==null) exit(0);
/*從文件中讀6個浮點到緩沖區data中*/
fread(data,sizeof(float),6);
/*顯示緩沖區的內容*/
for(i=0;i<6;i++)
printf("%f\n",data[i]);
return 0;
}

⑸ C語言二進制文件的讀取問題

C語言中二進制文件的讀取要用fread和fwrite來實現。
fwrite()與fprintf()是不同的。
fwrite將寫入的數據作為文件的磁碟內容保存。fprintf將寫入的數據的每個字元所對應的ASCII碼作為文件的磁碟內容保存。fprintf做了一個轉換的工作。
當打開文件時,記事本會自動把文件的磁碟內容作為ASCII碼轉換成對應的字元,然後再顯示出來,即顯示的是文本內容而不是磁碟內容。
例如,用fwrite向文件寫入「65」時,文件的磁碟內容就是保存的65(磁碟上以二進製表示)。當用記事本打開文件時,記事本會讀到65,並把65看作一個ASCII碼,再把對應的字元「A」顯示出來。因此屏幕上看到的文本內容是「A」。
而用fprintf向文件寫入「65」時,文件的磁碟內容保存的是「6」和「5」這兩個字元對應的ASCII碼,分別是54和53。因此文件的磁碟內容是54和53。當用記事本打開文件時,記事本讀到54,就顯示出對應的「6」。再讀到53,就顯示出對應的「5」。

⑹ C語言怎麼編寫一個程序讀取任何二進制文件,並將文件內所有位元組按相反排序存入另一文件中

如果文件不大的話,可以定義一個數組,一次性將文件內容都讀出來,然後從後向前寫到新文件中,如果文件很大的話,就將文件指針定位到文件結尾的前一個位元組處,循環讀一個位元組寫入另一個文件,並將原文件指針往回移2個位元組,直到將所有位元組反向讀取完成並寫入。
#include <stdio.h>

main()
{
char c;

FILE *rfp, *wfp;

rfp = fopen("a.bin", "rb"); // 文件名自己指定
if(rfp == NULL) {
printf("文件不存在\n");

return -2;

}

wfp = fopen("b.bin", "wb");

if(wfp == NULL) {
printf("無法創建文件\n");

return -2;

}

fseek(rfp, -1, SEEK_END);

do {

fread(&c, sizeof(char), 1, rfp);
fwrite(&c, sizeof(char), 1, wfp);
} while(fseek(rfp, -2, SEEK_CUR) == 0);

fclose(rfp);

fclose(wfp);

}

⑺ c語言用什麼函數讀取2進制文件內容

你怎麼輸出的?
二進制如果以文本輸出,自然會有很多亂碼。
你可以用"%x"格式輸出看看
char
a;
a=fgetc(fp1);
printf("%c",
a);/*這樣肯定有亂碼*/
printf("%x",
a);/*這樣就是16進制*/

⑻ C語言鏈表讀取二進制文件

關鍵代碼應該是這樣的
FILE *fp = fopen("file","rb");
char *p = node->data;
while(!feof(fp))
*p++ = fgetc(fp);
fclose(fp);
//**********************以上讀*******************
FILE *fp = fopen("file","wb");
char *p = node->data;
while( p < node->data+len)
fputc(fp,*p++);
fclose(fp);
//**********************以上寫*******************

⑼ c語言怎麼讀取二進制文件

main()
{
FILE * stream;
int i;
stream = fopen("/tmp/fwrite","r");
fread(s,sizeof(struct test),nmemb,stream);
fclose(stream);
for(i=0;i<nmemb;i++)
printf("name[%d]=%-20s:size[%d]=%d/n",i,s[i].name,i,s[i].size);
}
供參考

⑽ 在c語言中如何打開二進制文件

文本文件和二進制文件就是一個聲明,指明了你應該以什麼方式(文本方式/二進制)打開這個文件,用什麼函數讀寫這個文件(讀寫函數),怎麼判斷讀到這個文件結尾。


具體的說:

C規定了標准輸入輸出函數庫,用fopen()函數打開文件。fopen()函數的調用方式一般為:

FILE*fp;//定義一個文件類型的指針變數fp
fp=fopen(文件名,使用文件方式);


使用文件方式見下表:

"r"(只讀) 為輸入打開一個文本文件

"w"(只寫) 為輸出打開一個文本文件

"a"(追加) 為追加打開一個文本文件

"rb"(只讀) 為輸入打開一個二進制文件

"wb"(只寫) 為輸出打開一個二進制文件

"ab"(追加) 為追加打開一個二進制文件

"r+"(讀寫) 為讀/寫打開一個文本文件

"w+"(讀寫) 為讀/寫創建一個文本文件

"a+"(讀寫) 為讀/寫打開一個文本文件

"rb+"(讀寫) 為讀/寫打開一個二進制文件

"wb+"(讀寫) 為讀/寫創建一個二進制文件

"ab+"(讀寫) 為讀/寫打開一個二進制文件

熱點內容
修改linuxroot密碼 發布:2025-01-21 07:10:00 瀏覽:782
命題庫文件夾 發布:2025-01-21 07:09:53 瀏覽:160
壁紙老是變大怎麼辦安卓 發布:2025-01-21 07:09:14 瀏覽:662
卡爾頓麵包腳本策劃 發布:2025-01-21 06:34:45 瀏覽:264
界面像電腦一樣的伺服器 發布:2025-01-21 06:29:52 瀏覽:990
匿名祝福源碼 發布:2025-01-21 06:29:13 瀏覽:349
雲識別系統登陸密碼是多少 發布:2025-01-21 06:23:39 瀏覽:369
stl源碼剖析中文 發布:2025-01-21 06:14:17 瀏覽:345
我的世界手機版為什麼連不上伺服器 發布:2025-01-21 06:14:17 瀏覽:454
壓縮機的性能參數 發布:2025-01-21 06:10:34 瀏覽:608