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樓: 檔案本質上都是用二進位制存貯的,我不明白你說的「一般儲存方式」是啥。 採用二進位制儲存,最關鍵的是你如何設計你儲存的資料結構。 後面的是亂碼嗎,還是位置不對,我記得fseek fp,i sizeof struct student type 0 使用這個訪問檔案的話,那個檔案最好是寫的時候就用二進位制寫。對於文字檔案,其實你也可以麻煩點的。每一條檔案中的一個屬性佔一行,比如一個學生的資料,名字佔一行,學號佔一行.總共佔了4行,... 黑會峰 ab檔案使用方式 rt 只讀開啟一個文字檔案,只允許讀資料 wt 只寫開啟或建立一個文字檔案,只允許寫資料 at 追加開啟一個文字檔案,並在檔案末尾寫資料 rb 只讀開啟一個二進位制檔案,只允許讀資料 wb 只寫開啟或建立一個二進位制檔案,只允許寫資料 ab 追加開啟一個二進位制檔案,並在檔... 投機士 在磁碟的儲存上都是二進位制儲存這點上都一樣。從檔案編碼的方式來看,檔案可分為ascii碼檔案和二進位制碼檔案兩種。ascii檔案也稱為文字檔案,這種檔案在磁碟中存放時每個字元對應一個位元組,用於存放對應的ascii碼。例如,數5678的儲存形式為 asc碼 00110101 00110110...c語言檔案問題
c語言檔案使用方式問題,C語言 檔案使用方式問題
c語言中採用二進位制檔案儲存資料的問題