c語言如何用檔案儲存資料,c語言中採用二進位制檔案儲存資料的問題

時間 2021-12-19 05:48:55

1樓:匿名使用者

使用檔案操作函式即可用檔案儲存資料。

1、c語言標準庫提供了一系列檔案操作函式。檔案操作函式一般以f+單詞的形式來命名(f是file的簡寫),其宣告位於stdio.h標頭檔案當中。

例如:fopen、fclose函式用於檔案開啟與關閉;fscanf、fgets函式用於檔案讀取;fprintf、fputs函式用於檔案寫入;ftell、fseek函式用於檔案操作位置的獲取與設定。

2、例程:

#include

int a;

char b,c[100];

int main()

fscanf(fp1,"%d",&a);//從輸入檔案讀取乙個整數b=fgetc(fp1);//從輸入檔案讀取乙個字元fgets(c,100,fp1);//從輸入檔案讀取一行字串printf("%ld",ftell(fp1));//輸出fp1指標當前位置相對於檔案首的偏移位元組數

fputs(c,fp2);//向輸出檔案寫入一行字串fputc(b,fp2);//向輸出檔案寫入乙個字元fprintf(fp2,"%d",a);//向輸出檔案寫入乙個整數fclose(fp1);//關閉輸入檔案

fclose(fp2);//關閉輸出檔案,相當於儲存return 0;}

2樓:瀚漠

#include

#include

#include

#include

#include

struct test

;void main()

}for(i=0;i<10;i++) tm[i]=data[i].s; for(i=0;i<10;i++) p[i]=&data[i];

for(i=0;i<9;i++)

else break;

}/*用拆半法先將前半部分與min比較*/

for(i=6;i<9;i++)

else break;

}/*用拆半法先將後半部分與min比較*/

printf("the worst pingwei is %d and the sorce is %.1f\n",

p[bad]->num,p[bad]->s);

fprintf(fp,"the worst pingwei is %d and the sorce is %.1f\n",

p[bad]->num,p[bad]->s);

/*列印出最不公平裁判和其分數*/

printf("the best pingwei is %d and the sorce is %.1f\n",

p[good]->num,p[good]->s);

fprintf(fp,"the best pingwei is %d and the sorce is %.1f\n",

p[good]->num,p[good]->s);

/*列印出最公平裁判和其分數*/

printf("\n----------------------------------\n");

fprintf(fp,"\n----------------------------------\n");

printf("next one:"); /*列印出下一位*/

}while(1);

}輸出到檔案不難,在程式開始使用fopen開啟乙個檔案,得到返回值fp,之後使用fprintf把想輸出的內容輸出到fp即可,在退出程式的時候使用fclose關閉fp。

3樓:

如果上面這些**是你自己寫的說明***這些

然後花一點時間看一下c語言檔案操作應該一下就解決這問題了

不管哪種語言都是開啟檔案 然後讀寫 然後關閉檔案 很簡單自己看一下就會了

c語言中,把資料儲存在txt檔案中的**怎麼寫的?

4樓:刺友互

1、在vscode裡面新增了python檔案和用於讀取的文字檔案。

2、然後在txt檔案寫上一些內容用於待會的內容讀取。

3、必須要匯入os檔案,這樣才可呼叫os中的一些檔案操作方法。

4、然後開啟要進行讀取內容的檔案,並且把讀取到的內容資料複製給了變數a。

5、然後把變數a列印即可把內容給展現出來,方便查閱了。

6、接著執行jy.py檔案,這樣就會開始讀取,列印內容了。

7、可以看到檔案的內容真的被讀取到了。

5樓:

c語言,把資料存在txt檔案裡,需要使用fopen函式以寫檔案的方式開啟檔案。

然後可以使用fprintf,fputc,fputs,fwrite等函式,把相應型別的資料寫入檔案。

最後,寫入完成後使用fclose函式關閉檔案。

下面的c語言程式源程式展示了合併a.txt和b.txt兩個txt檔案的內容儲存到到新建的乙個txt檔案,c.txt。

#include

#include

using namespace std;

typedef struct student  stu;

int main(int argc, char* argv)

int i=0;

fclose(ra);

fclose(rb);

int n=i;

for(i=0;i

其中a.txt中的內容如下:

b.txt中的內容如下:

編譯執行後,程式執行的結果如下:

同時,儲存到c.txt中的資料如下:

6樓:匿名使用者

#include

void main()

7樓:匿名使用者

void main()}

8樓:博大精深

我感覺還行,這樣的辦法還是不錯的是吧。

9樓:匿名使用者

c中有好幾個存放字串資料的函式:fprintf、fgets等,具體用哪個根據實際情況來吧

c語言中採用二進位制檔案儲存資料的問題

10樓:投機士

在磁碟的儲存上都是二進位制儲存這點上都一樣。

從檔案編碼的方式來看,檔案可分為ascii碼檔案和二進位製碼檔案兩種。

ascii檔案也稱為文字檔案,這種檔案在磁碟中存放時每個字元對應乙個位元組,用於存放對應的ascii碼。例如,數5678的儲存形式為:

asc碼:  00110101 00110110 00110111 00111000

↓     ↓    ↓    ↓

十進位製碼: 5     6    7    8 共占用4個位元組。ascii碼檔案可在螢幕上按字元顯示, 例如源程式檔案就是ascii檔案,用dos命令type可顯示檔案的內容。

由於是按字元顯示,因此能讀懂檔案內容。

二進位制檔案是按二進位制的編碼方式來存放檔案的。 例如, 數5678的儲存形式為: 00010110 00101110只佔2個位元組。

二進位制檔案雖然也可在螢幕上顯示, 但其內容無法讀懂。

流可以分為兩種型別:文字流和二進位製流。文字流是解釋性的,最長可達255個字元,其中回車/換行將被轉換為換行符「/n」,(如果以"文字"方式開啟乙個檔案,那麼在讀字元的時候,系統會把所有的"/r/n"序列轉成"/n",在寫入時把"/n"轉成"/r/n" archim 's opinion )。

二進位製流是非解釋性的,一次處理乙個字元,並且不轉換字元。

通常,文字流用來讀寫標準的文字檔案,或者將字元輸出到螢幕或印表機,或者接受鍵盤的輸入;而二進位製流用來讀寫二進位制檔案(例如圖形或字處理文件),或者讀取滑鼠輸入,或者讀寫數據機。

如果用文字方式開啟檔案,會把「0d 0a」自動變換成「/n」來存在記憶體中。寫入的時候反向處理。 而二進位制方式開啟的話,就不會有這個過程。

所以從上面可以看出:文字檔案佔磁碟空間大,讀取速度比較慢,但開啟後容易理解;二進位制檔案佔磁碟空間小,讀取速度快,如果要理解檔案檔案的意思需要自己進行解釋。

11樓:匿名使用者

比如要儲存乙個整數int a=12345;到檔案可以是文字方式,可以是二進位制方式。

文字方式就是儲存的檔案內容是乙個字串12345,記事本可以直接開啟,顯示12345

fprintf(fp, "%d", a);

二進位制方式就是把直接把12345這個數在記憶體的內容(0x00003039)直接放在檔案中,你用記事本開啟是亂碼,一般用16進製制編輯器開啟

fwrite(&a, sizeof(a), 1, fp);

一般都是直接把乙個結構儲存到檔案

比如struct stu

students;

12樓:匿名使用者

1、二進位制文字使用fopen函式的二進位制模式「rb」就可以開啟。對於程式來說,不管字尾名如何,檔案分為兩種型別:文字檔案和二進位制檔案。

c語言裡有一系列檔案操作函式。區分文字和二進位制檔案,需要在開啟檔案時設定不同的控制符mode的變數即可。

2、fopen的函式原型:file * fopen(const char * path,const char * mode);

fopen函式的第乙個引數是檔案路徑,第二個引數是開啟方式,有以下幾種方式:

r 以唯讀方式開啟檔案,該檔案必須存在。

r+ 以可讀寫方式開啟檔案,該檔案必須存在。

rb+ 讀寫開啟乙個二進位制檔案,允許讀資料。

rw+ 讀寫開啟乙個文字檔案,允許讀和寫。

w 開啟只寫檔案,若檔案存在則檔案長度清為0,即該檔案內容會消失。若檔案不存在則建立該檔案。

w+ 開啟可讀寫檔案,若檔案存在則檔案長度清為零,即該檔案內容會消失。若檔案不存在則建立該檔案。

a 以附加的方式開啟只寫檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾,即檔案原先的內容會被保留。(eof符保留)

a+ 以附加方式開啟可讀寫的檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾後,即檔案原先的內容會被保留。 (原來的eof符不保留)

wb 只寫開啟或新建乙個二進位制檔案;只允許寫資料。

wb+ 讀寫開啟或建立乙個二進位制檔案,允許讀和寫。

wt+ 讀寫開啟或著建立乙個文字檔案;允許讀寫。

at+ 讀寫開啟乙個文字檔案,允許讀或在文字末追加資料。

ab+ 讀寫開啟乙個二進位制檔案,允許讀或在檔案末追加資料。

上述的形態字串都可以再加乙個b字元,如rb、w+b或ab+等組合,加入b 字元用來告訴函式庫開啟的檔案為二進位制檔案,而非純文字檔案。

3、例程:

#include

#include

int main ()

while ((iread = fread (szbuf, 1, sizeof (szbuf), fpphoto)) > 0)

fwrite (szbuf, 1, iread, fptarget) ;

while ((iread = fread (szbuf, 1, sizeof (szbuf), fptext)) > 0)

fwrite (szbuf, 1, iread, fptarget) ;

fclose (fpphoto) ;

fclose (fptext) ;

fclose (fptarget) ;

return 0 ;}

c語言讀取檔案資料,C語言讀取檔案資料

先用getline或fgets讀取資料到乙個字串中,這個串定義的長一點,保證夠用就行。舉例 char str 1024 fgets str sizeof str fp fp開啟的檔案指標。然後呼叫for迴圈去讀取串的的資料,假設你的分隔符是空格,遍歷str,遇到空格就得到乙個資料,然後繼續遍歷,直到...

c語言如何讀取檔案,C語言如何讀取檔案?

蒯懿靖迎夏 乙個c語言讀寫檔案程式 include stdio.h include main fclose fp1 關閉檔案a.txt,有開啟就要有關閉fclose fp2 關閉檔案b.txt 乙個檔案流指標對應乙個開啟的檔案,因為你要同時操作兩個檔案,所以要用兩個檔案流指標 就像你要同時操作兩個箱...

c語言,如何複製檔案,C語言,如何複製檔案

呼叫系統函式是以字串方式儲存的,而非二進位制。因為dos linux命令列下二進位制編碼無意義 所以system 一定不滿足你的要求。可以使用c的io函式達到你想要的目的 以下是簡要說明,不考慮出錯等問題 所有io函式包含在stdio.h中 linuxc是,turboc應該也是吧,忘了 1 定義原始...

如何用c語言程式設計出視覺化介面,如何用C語言程式設計出視覺化介面?

純c語言c 很難。那得是大神中的大神。你可以借助qt工具。或者window 的vs 或者vc編輯。利用win32api 或者mfc等 c語言程式設計如何實現圖形化? 這要看你所使用的系統平台,圖形化程式設計與系統平台息息相關 對於c語言來說,有許多成熟的框架。比如windows上可使用windows...

c語言怎麼呼叫dll檔案,C語言如何呼叫DLL

1 新建dlltest資料夾,在該資料夾中新建source資料夾。2 在source資料夾中造add.c。3 win r cmd請出總指揮 命令列 輸入。4 繼續輸入 路徑也要隨機應變 link dll out e vcfile dlltest source add.dll e vcfile dll...