① c語言中如何對文件中的某些數據進行修改
如果文件較短,可以全部讀到內存,修改後寫入文件。
如果文件很大,沒有好辦法,只能在新文件中寫入原文件修改的內容,然後刪除原來的文件,重新命名。
② C語言,能找到文件中指定的內容後,應該怎麼修改替換
1、打開易語言來集成開發環境注源意要選擇window窗口程序要不然不出來窗口的大家一定注意
2、新建一個變數然後按照下面進行操作就可以了
程序集
窗口程序集1
.子程序
_按鈕1_被單擊
.局部變數
文本,
文本型
.局部變數
文件,
文本型
文件
=
尋找文件
(取運行目錄
()
+
「\*.txt」,
)
.判斷循環首
(文件
≠
「」)
文本
=
到文本
(讀入文件
(文件))
文本
=
子文本替換
(文本,
「廣告」,
「網路」,
,
99999,
真)
寫到文件
(文件,
到位元組集
(文本))
文件
=
尋找文件
(,
)
.判斷循環尾
()
輸出調試文本
(「替換完畢」)
3、注意這個命令比較復雜,要按照裡面的解釋進行操作。
③ 怎麼用C語言對文件操作用特定內容替換其中某些內容
如果復只想修改文件一部分。
可以制使用函數int fseek( FILE *stream, long offset, int origin );來定位你的文件指針。
文件指針的位置決定你讀寫文件的起始位置。
其中參數origin :表示從哪裡開始偏移,值有:
SEEK_SET: 文件開頭
SEEK_CUR: 當前位置
SEEK_END: 文件結尾
參數offset:表示偏移的位元組數,正數表示正向偏移,負數表示負向偏移。
比如
你先讀取文件內容,同時做判斷,找到你要改的內容時,調用函數
fseek(fp,10L,SEEK_CUR);把文件指針移動到離當前指針位置10個位元組的地方(我們假設當前位置偏移10個位元組就是你要修改的起始位置);
這樣你之後的讀寫都是從這個位置開始。
不過要注意的是,你從這位置開始寫新的內容,可以覆蓋原內容,所以如果新的內容比你想覆蓋的內容長的話,會把後面你想保留的內容也覆蓋掉。
這種思路,你想要實現修改指定內容,還需要把修改內容之後的數據也讀出來備份,再一起寫進去。
所以最簡單,還是直接生成新的文件替換原文件。
④ 怎麼用C語言修改文件內容
提供思路:復
先一組制一組數據讀取,然後進行比較,看是不是你要修改的數據(如果是你要修改的數據,那此時文件的指針已經指向下一組數據了),然後用fseek(fp,-sizeof(type),seek_cur);使文件指針指向該數據塊(fp為文件指針,sizeof(type)為數據長度,type是我指定,你可以換成你需要的數據類型,比如int或是struct等)
如果你知道數據是第幾組就更好了,直接用fseek(fp,(n-1)*sizeof(type),seek_set);就能找到位置了
用前面兩種方法的前提是,你存入數據的時候用的都是以數據塊的方式寫入的同一種數據(比如只用fwrite()函數寫入的struct類型數據),如果用的是復合方式寫入,比如用了fwrite()、fputc()、fprintf(),這樣的話,定位就有問題了。
⑤ c語言怎麼修改txt文件中的單詞
1、打開原文件和1個備份文件。
2、從原文件讀取一行,寫入臨時文件中,在臨時文件讀取寫入文件長度。
3、將原文件指針向前移動返回的文件長度。
4、將要修改的文件內容寫入原文件部分代碼,寫入文件時,需要給前面一行留空,使文件指針可以移動。
⑥ C語言怎麼修改文件信息
把文件裡面數據讀出來,在內存裡面改掉,再把改後的數據寫回去
c操作文件沒有修改的方式,只有追加,不過也不適合你的需最常用的就是這樣,先讀,改 再重寫
⑦ C語言 怎麼替換文件中的某一段
比較穩妥的辦法是:
寫方式創建一個臨時文件。
將原文件逐字向臨時文件拷貝,拷到你要替換的內容處,轉而拷貝要替換的新內容;新內容拷完後,將原文件的讀指針移動到要刪除的內容之後,接著繼續拷貝,直到文件結束。
關閉打開的兩個文件,刪除原文件,將臨時文件更名為原文件名。
為什麼要這么做呢?因為你修改的部分的文件塊大小新舊可能不一致,不好操作。若是大小嚴格一致的,則可以用隨機訪問函數移動指針,直接寫到原文件要修改的地方覆蓋原數據卻可。
⑧ 關於C語言中文件修改的操作!
使用文件操作函數即可創建文件,使用文件操作函數fprintf即可修改文件內容。
1、C語言標准庫提供了一系列文件操作函數。文件操作函數一般以f+單詞的形式來命名(f是file的簡寫),其聲明位於stdio.h頭文件當中。例如:fopen、fclose函數用於文件打開與關閉;fscanf、fgets函數用於文件讀取;fprintf、fputs函數用於文件寫入;ftell、fseek函數用於文件操作位置的獲取與設置。
2、常式:
#include<stdio.h>
int i,a[100];
int main(){
FILE * fp1 = fopen("input.txt", "r");//打開輸入文件
FILE * fp2 = fopen("output.txt", "w");//打開輸出文件
if (fp1==NULL || fp2==NULL) {//若打開文件失敗則退出
puts("不能打開文件!");
rturn 0;
}
for(i=0;fscanf(fp1,"%d",a+i)!=EOF;i++);//從輸入文件連續讀取整數到數組a
for(;i--;)fscanf(fp2,"%d ",a[i]);//把數組a逆序寫入到輸出文件當中
fclose(fp1);//關閉輸入文件
fclose(fp2);//關閉輸出文件,相當於保存
return 0;
}