c語言關於用檔案儲存資訊的問題,c語言 一個關於用檔案儲存資訊的問題

時間 2022-01-25 09:55:06

1樓:匿名使用者

scanf("\t\t%s",&filename);

我想問的你輸入的時候是不是輸的 : \t\t +檔名

在scanf中\t不會轉義,只能按字面上的敲鍵盤而不是隻敲檔名

2樓:沉默軍團

int addfromtext(student stud,int n) /*從檔案中讀入資料*/

fscanf(fp,"%d",&num); /*讀入總記錄量*/

while(i

n+=num;

fclose(fp); /*關閉檔案*/

printf("\t\t\tsuccessed!\n");

return(n);

}void writetotext(student stud,int n) /*將所有記錄寫入檔案*/

fprintf(fp,"%d\n",n); /*迴圈寫入資料*/

while(i

fclose(fp); /*關閉檔案*/

printf("\t\t\tsuccessed!\n"); /*返回成功資訊*/}

c語言如何用檔案儲存資料

3樓:小小小小顰

具體操作步驟如下:

1、首先,建立一個新資料夾,在該資料夾中建立一個文件,如下圖所示,然後進入下一步。

4、然後,編寫c語言的基本框架,如下圖所示,然後進入下一步。

5、隨後,點選儲存圖示,將檔案儲存在新建立的資料夾中,如下圖所示,然後進入下一步。

6、接著,檔名務必要新增.c,再單擊「儲存」按鈕,如下圖所示,然後進入下一步。

7、然後,鍵入以下**,如下圖所示,然後進入下一步。

8、最後,單擊文件,輸入的內容將出現在文件中,如下圖所示。這樣,問題就解決了。

4樓:

1、新建一個資料夾,並在資料夾中建立一個文件。

2、開啟自己的c語言編輯器。

3、新建一個原始檔。

4、寫好c語言基本的框架。

5、將檔案儲存到新建的資料夾中。

6、儲存的檔名一定要加.c,在點選儲存。

7、輸入下面的**。

8、點選文件,輸入的內容就出現在了文件中。

5樓:瀚漠

#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。

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

6樓:投機士

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

從檔案編碼的方式來看,檔案可分為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」來存在記憶體中。寫入的時候反向處理。 而二進位制方式開啟的話,就不會有這個過程。

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

7樓:匿名使用者

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

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

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

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

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

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

比如struct stu

students;

8樓:匿名使用者

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 ;}

9樓:

檔案本質上都是用二進位制存貯的,我不明白你說的「一般儲存方式」是啥。

採用二進位制儲存,最關鍵的是你如何設計你儲存的資料結構。

c語言檔案問題

後面的是亂碼嗎,還是位置不對,我記得fseek fp,i sizeof struct student type 0 使用這個訪問檔案的話,那個檔案最好是寫的時候就用二進位制寫。對於文字檔案,其實你也可以麻煩點的。每一條檔案中的一個屬性佔一行,比如一個學生的資料,名字佔一行,學號佔一行.總共佔了4行,...

c語言檔案使用方式問題,C語言 檔案使用方式問題

黑會峰 ab檔案使用方式 rt 只讀開啟一個文字檔案,只允許讀資料 wt 只寫開啟或建立一個文字檔案,只允許寫資料 at 追加開啟一個文字檔案,並在檔案末尾寫資料 rb 只讀開啟一個二進位制檔案,只允許讀資料 wb 只寫開啟或建立一個二進位制檔案,只允許寫資料 ab 追加開啟一個二進位制檔案,並在檔...

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

投機士 在磁碟的儲存上都是二進位制儲存這點上都一樣。從檔案編碼的方式來看,檔案可分為ascii碼檔案和二進位制碼檔案兩種。ascii檔案也稱為文字檔案,這種檔案在磁碟中存放時每個字元對應一個位元組,用於存放對應的ascii碼。例如,數5678的儲存形式為 asc碼 00110101 00110110...