1樓:網友
其實你用哪個都是一樣的,a和w是真正區別在於開啟檔案時的寫指標位置,a模式是在檔案末尾,w模式是在檔案開頭。你無論用哪種方式開啟,最後用fseek來偏移你的寫指標能達到在任意位置寫資料。
在c語言中,fopen乙個檔案 如何能夠在寫入新的資料覆蓋原檔案中指定長度的內容
2樓:網友
開啟檔案,seek檔案指標到ijk的位置,再寫入。
3樓:網友
開啟檔案用"a+"屬性。
然後移動檔案指標到原來ijk的位置。
接著寫入檔案。
4樓:
//給個例子吧:
#include
void main()
附加:fseek的第三個引數。
seek_set: 檔案開頭 0
seek_cur: 當前位置 1
seek_end: 檔案結尾 2
c語言裡面檔案fopen函式有個追加方式開啟檔案,什麼是追加方式呢?
5樓:小肥楊媽媽
開啟檔案時以追加方式即可fopen(filename, "ab ")
內容拓展:一、c語言。
1、c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。
2、儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以乙個標準規格寫出的c語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平臺。
3、二十世紀八十年代,為了避免各開發廠商用的c語言語法產生差異,由美國國家標準局為c語言訂定了一套完整的國際標準語法,稱為ansi c,作為c語言最初的標準。
二、fopen函式。
1、fopen函式是在當前目錄下開啟乙個檔案,其呼叫的一般形式為:檔案指標名=fopen(檔名,使用檔案方式);
2、"檔案指標名"必須是被說明為file 型別的指標變 量;
3、"檔名"是被開啟檔案的檔名;
4、"使用檔案方式"是指檔案的型別和操作要求;
5、"檔名"是字串常量或字元陣列。
6樓:星月小木木
開啟檔案時以追加方式即可fopen(filename, "ab ");
函式申明: file *fopen(char *filename, char *mode)
函式用途: 開啟乙個檔案。
頭 文 件:
輸入引數: filename: 檔名稱。
mode:開啟模式,含義具體如下:
r ":唯讀方式開啟乙個文字檔案 "rb ": 唯讀方式開啟乙個二進位檔案。
w ":只寫方式開啟乙個文字檔案 "wb ": 只寫方式開啟乙個二進位檔案。
a ":追加方式開啟乙個文字檔案 "ab ": 追加方式開啟乙個二進位檔案。
r+ ":可讀可寫方式開啟乙個文字檔案 "rb+ ": 可讀可寫方式開啟乙個二進位檔案。
w+ ":可讀可寫方式建立乙個文字檔案 "wb+ ": 可讀可寫方式生成乙個二進位檔案。
a+ ":可讀可寫追加方式開啟乙個文字檔案 "ab+ ": 可讀可寫方式追加乙個二進位檔案。
返回值: 檔案指標,如返回為null,表示開啟失敗。
7樓:西安阿呆
追加就是在原有資料的後面繼續新增資料。
比如檔案原來內容是。
8樓:網友
追加就是在原有資料的後面繼續新增資料。
檔案主名和副檔名可以使用的字元是:
英文字母:a—z(大小寫等價)
數 字:0—9
漢 字特殊符號:$#&@(等。
各種控制字元和下列字元不能用在檔名中:< / \ " * //這些字元已做它用。
檔名字母大小寫的區分:
dos下檔名不區分大小寫。
在windows系統下,顯示區分大小寫,讀寫操作時不區分。
在類unix/linux系統下,區分字母大小寫。
檔名長度的限制:
dos下檔名長度應為 即8位檔名3位副檔名。
在windows系統下,可以多個副檔名,以最後乙個為準,檔名長度255。
在類unix/linux系統下,檔名長度255,帶路徑的長度1024,也有系統4096。
檔名可以直接寫進去函式里,也可以放在變數裡:
file *fp;
char namein="";
fp=fopen(namein,"r");
或 fp=fopen("","r");
檔名若帶路徑,單反斜槓要寫成雙反斜槓,例如:
char namein="c:\\path\\";
c語言中往檔案內新增資料而不刪除原有資料時檔案的使用方式是什麼
9樓:陳學陽
因為式結構定義的 基本型別是陣列 所以。
例如刪除 name[1] addr[1](也就是第二個資訊)可以將個陣列後面的向前移動。
用乙個迴圈。
如果對您有幫助,請記得采納為滿意答案,謝謝!祝您生活愉快!
10樓:
a:以寫的方式開啟檔案,並移到檔案的末尾,如果不存在會自動建立該檔案。
11樓:網友
開啟方式使用"a"
不要用"w"
c語言,怎將檔案中指定位置上的資料更新後覆蓋???
12樓:網友
fp = fopen(f_name,"a");中a是追加的意思,換成fp = fopen(f_name,"w");
13樓:網友
方法1, 將資料線寫到乙個臨時檔案,在整個資料操作完成後,將臨時檔案覆蓋當前檔案。
方法2, fprintf之前需要呼叫fseek進行檔案讀寫指標移位。
建議看看檔案操作函式的相關介紹,瞭解一下檔案讀寫指標位置的概念。
14樓:網友
你需要解決兩個問題。
1、待更改的檔案應該是以「塊」狀形式寫入的,比如fwrite((void *)student stu,sizeof(student),1l,fp);,只有這樣才能準確定位待更改「塊」的位置。而以fprintf()寫入的檔案,可能由於資料的不同,每個結構資料佔用的空間就不同,即使你能準確定位,但寫入新資料後,若長度短了,剩餘的空間可能造成混亂,若長度長了,可能造成」覆蓋「。
2、開啟檔案同時用於」讀/寫「時,開啟的格式是"r+"或」w+「。
另外,還需要搞清楚檔案讀寫指標的使用特點,前兩個問題解決後再討論。
在c語言中如何將在檔案只存乙個資料然後把前面的乙個資料給覆蓋
15樓:九尾
刪除原來的檔案後,重新生成乙個不就行了麼?程式很快的,效果相當於覆蓋了。
16樓:僑積分肛
《小王子》這部童話情節跌宕起伏。
c語言檔案新增內容
17樓:冷夙霏甓檋旖
fopen開啟方式為「a」(文字)或「ab」(二進位)即可追加。其實也可以自己把檔案指標移到檔案尾再追加。
用c語言建立檔案,並且寫入資料用c語言建立一個txt檔案,並且寫入資料
include int main for int i 0 i 10 i fprintf fpwrite,d i fclose fpwrite 下面是讀資料,將讀到的資料存到陣列a 10 中,並且列印到控制檯上 int a 10 file fpread fopen data.txt r if fpre...
c語言讀取檔案資料亂碼,c語言讀取txt檔案資料時最後有一串亂碼怎麼辦
參考 如下 include include include int main return 0 把開啟方式改為 r 以及把讀取資訊用fscanf吧,因為如果你是原先先把kk.txt寫好,然後再用你的程式開啟它的話,由於裡面有換行符以及空格等內容,除非開始你是用fwrite函式寫入的結構資訊,否則fr...
c語言讀取檔案資料亂碼,為什麼C語言輸出檔案內容亂碼
把開啟方式改為。r 以及把讀取資訊用fscanf吧,因為如果你是原先先把寫好,然後再用你的程式開啟它的話,由於裡面有換行符以及空格侍乎等內容,除非開始你是用fwrite函式寫入的結構資訊,否則fread會備談消把這些都作為資訊讀取的 也就是說它讀到乙個struct student type大小的資料...