① 關於c語言中文件修改的操作!
使用文件操作函數fopen即可創建文件,使用文件操作函數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;
}
② 如何用C語言文件操作修改指定文件
一個c語言讀寫文件程序:
#include
"stdio.h"
#include
main()
{
file
*fp1;//定義文件流指針,用於打開讀取的文件
file
*fp2;//定義文件流指針,用於打開寫操作的文件
char
text[1024];//定義一個字元串數組,用於存儲讀取的字元
fp1
=
fopen("d:\\a.txt","r");//只讀方式打開文件a.txt
fp2
=
fopen("d:\\b.txt","w");//寫方式打開文件a.txt
while(fgets(text,1024,fp1)!=null)//逐行讀取fp1所指向文件中的內容到text中
{
puts(text);//輸出到屏幕
fputs(text,fp2);//將內容寫到fp2所指向文件中
}
fclose(fp1);//關閉文件a.txt,有打開就要有關閉
fclose(fp2);//關閉文件b.txt
}
③ 怎麼用C語言修改文件內容
1.fopen()
fopen的原型是:FILE *fopen(const char *filename,const char *mode),fopen實現三個功能:為使用而打開一個流,把一個文件和此流相連接,給此流返回一個FILR指針。
參數filename指向要打開的文件名,mode表示打開狀態的字元串,其取值如下:
字元串 含義
"r" 以只讀方式打開文件
"w" 以只寫方式打開文件
"a" 以追加方式打開文件
"r+" 以讀/寫方式打開文件,如無文件出錯
"w+" 以讀/寫方式打開文件,如無文件生成新文件
一個文件可以以文本模式或二進制模式打開,這兩種的區別是:在文本模式中回車被當成一個字元』\n』,而二進制模式認為它是兩個字元 0x0D,0x0A;如果在文件中讀到0x1B,文本模式會認為這是文件結束符,也就是二進制模型不會對文件進行處理,而文本方式會按一定的方式對數據作相應的轉換。
系統默認的是以文本模式打開,可以修改全部變數_fmode的值來修改這個設置,例如_fmode=O_TEXT;就設置默認打開方式為文本模式;而_fmode=O_BINARY;則設置默認打開方式是二進制模式。
我們也可以在模式字元串中指定打開的模式,如"rb"表示以二進制模式打開只讀文件,"w+t"或"wt+"表示以文本模式打開讀/寫文件。
此函數返回一個FILE指針,所以申明一個FILE指針後不用初始化,而是用fopen()來返回一個指針並與一個特定的文件相連,如果成敗,返回NULL.
例:
以下是引用片段:
FILE *fp;
if(fp=fopen("123.456","wb"))
puts("打開文件成功");
else
puts("打開文件成敗");
2.fclose()
fclose()的功能就是關閉用fopen()打開的文件,其原型是:int fclose(FILE *fp);如果成功,返回0,失敗返回EOF。
在程序結束時一定要記得關閉打開的文件,不然可能會造成數據丟失的情況,我以前就經常犯這樣的錯誤。
例:fclose(fp);
3.fputc()
向流寫一個字元,原型是int fputc(int c, FILE *stream); 成功返回這個字元,失敗返回EOF。
例:fputc(』X』,fp);
4.fgetc()
從流中讀一個字元,原型是int fputc(FILE *stream); 成功返回這個字元,失敗返回EOF。
例:char ch1=fgetc(fp);
5. fseek()
此函數一般用於二進制模式打開的文件中,功能是定位到流中指定的位置,原型是int fseek(FILE *stream, long offset, int whence);如果成功返回0,參數offset是移動的字元數,whence是移動的基準,取值是:
符號常量 值 基準位置
SEEK_SET 0 文件開頭
SEEK_CUR 1 當前讀寫的位置
SEEK_END 2 文件尾部
例:fseek(fp,1234L,SEEK_CUR);//把讀寫位置從當前位置向後移動1234位元組(L後綴表示長整數)
fseek(fp,0L,2);//把讀寫位置移動到文件尾
6.fputs()
寫一個字元串到流中,原型int fputs(const char *s, FILE *stream);
例:fputs("I Love You",fp);
7.fgets()
從流中讀一行或指定個字元,原型是char *fgets(char *s, int n, FILE *stream); 從流中讀取n-1個字元,除非讀完一行,參數s是來接收字元串,如果成功則返回s的指針,否則返回NULL。
例:如果一個文件的當前位置的文本如下:
Love ,I Have
But ……..
如果用
fgets(str1,4,file1);
則執行後str1="Lov",讀取了4-1=3個字元,而如果用
fgets(str1,23,file1);
則執行str="Love ,I Have",讀取了一行(包括行尾的』\n』)。
8.fprintf()
按格式輸入到流,其原型是int fprintf(FILE *stream, const char *format[, argument, …]);其用法和printf()相同,不過不是寫到控制台,而是寫到流罷了。
例:fprintf(fp,"%2d%s",4,"Hahaha");
9.fscanf()
從流中按格式讀取,其原型是int fscanf(FILE *stream, const char *format[, address, …]);其用法和scanf()相同,不過不是從控制台讀取,而是從流讀取罷了。
例:fscanf(fp,"%d%d" ,&x,&y);
10.feof()
檢測是否已到文件尾,是返回真,否則返回0,其原型是int feof(FILE *stream);
例:if(feof(fp))printf("已到文件尾");
11.ferror()
原型是int ferror(FILE *stream);返迴流最近的錯誤代碼,可用clearerr()來清除它,clearerr()的原型是void clearerr(FILE *stream);
例:printf("%d",ferror(fp));
12.rewind()
把當前的讀寫位置回到文件開始,原型是void rewind(FILE *stream);其實本函數相當於fseek(fp,0L,SEEK_SET);
例:rewind(fp);
13.remove()
刪除文件,原型是int remove(const char *filename); 參數就是要刪除的文件名,成功返回0。
例:remove("c:\\io.sys");
14.fread()
從流中讀指定個數的字元,原型是size_t fread(void *ptr, size_t size, size_t n, FILE *stream);參數ptr是保存讀取的數據,void*的指針可用任何類型的指針來替換,如char*、int *等等來替換;size是每塊的位元組數;n是讀取的塊數,如果成功,返回實際讀取的塊數(不是位元組數),本函數一般用於二進制模式打開的文件中。
例:
以下是引用片段:
char x[4230];
FILE *file1=fopen("c:\\msdos.sys","r");
fread(x,200,12 ,file1);//共讀取200*12=2400個位元組
15.fwrite()
與fread對應,向流中寫指定的數據,原型是size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream);參數ptr是要寫入的數據指針,void*的指針可用任何類型的指針來替換,如char*、int *等等來替換;size是每塊的位元組數;n是要寫的塊數,如果成功,返回實際寫入的塊數(不是位元組數),本函數一般用於二進制模式打開的文件中。
例:
以下是引用片段:
char x[]="I Love You";
fwire(x, 6,12,fp);//寫入6*12=72位元組
將把"I Love"寫到流fp中12次,共72位元組
16.tmpfile()
其原型是FILE *tmpfile(void); 生成一個臨時文件,以"w+b"的模式打開,並返回這個臨時流的指針,如果失敗返回NULL。在程序結束時,這個文件會被自動刪除。
例:FILE *fp=tmpfile();
17.tmpnam();
其原型為char *tmpnam(char *s); 生成一個唯一的文件名,其實tmpfile()就調用了此函數,參數s用來保存得到的文件名,並返回這個指針,如果失敗,返回NULL。
例:tmpnam(str1);
④ 用C語言怎麼改文件名
我告訴你一個很簡單的方法
你加頭文件#include<stdlib.h>
在語句中寫system("ren
qq.txt
ww.txt");
如果文件不在程序目錄下,就在文件名那裡加路徑就可以了,但路徑中的單斜杠(\)要寫成雙斜杠(\\);
如system("ren
c:\\qq.txt
ww.txt")
如果你要用字元串來命名文件名。就用這個函數strcat()函數來把字元串接起來就可以了,在、前面加頭文件#include<string.h>.
如上面的列子可以這么寫:
char
a[10]="ww.txt";//這是你要改成的文件名。
char
b[20]="ren
c:\\qq.txt
";
strcat(b,a);//這里把a、b字元串接起來,經過這里b就等於"ren
c:\\qq.txt
ww.txt";了
。
//下面直接又調用
system(b);//因為字元串b
經過和a連接後就是整個你需要填進的參數了。
⑤ 如何在C語言編程裡面修改源文件名字
C修改文件名:使用rename函數。
rename函數:功能描述:改變文件的名稱或者位置,如果目標已存在,將被自動覆蓋。用法:#include<stdio.h>intrename(constchar*oldpath,constchar*newpath);參數:
oldpath:舊文件名。newpath:新文件名或者新位置。
具體可以分以下2種情況:
1、修改單個文件
直接使用rename即可。
2、批量修改文件(如:按一定規則修改某目錄下所有文件)
需要使用opendir遍歷目錄,然後修改該目錄下文件。下面提供一個簡單的例子。
voidModFilesName(constchar*pcszPath)
{
charszPathFile[1024]={0};//路徑+文件名
DIR*dir_p;
structdirent*direntp;
structstatentryInfo;
//文件目錄不存在,則創建
if(stat(pcszPath,&entryInfo)<0)
{
printf("Autocreatefolder:%s ",pcszPath);
mkdir(pcszPath,0755);
}
if((dir_p=opendir(pcszPath))==NULL)
{
return;
}
while((direntp=readdir(dir_p))!=NULL)
{
//組合完整路徑
sprintf(szPathFile,"%s/%s",pcszPath,direntp->d_name);
//判斷文件是否是目錄
if(lstat(szPathFile,&entryInfo)==0)
{
if(S_ISDIR(entryInfo.st_mode))
{
continue;//忽略目錄
}
rename(szPathFile,你要修改成的文件名);
}
}//while(...
closedir(dir_p);
}
推薦一片文章:http://blog.chinaunix.net/uid-7525568-id-251530.html
希望能幫助到你,你的好評是我前進的動力!謝謝!
⑥ 用C語言如何將UTF-8編碼的txt文件改成ANSI編碼的文件,非常感謝!
《C語言將UTF-8編碼的txt文件改成ANSI編碼》網路網盤免費下載
鏈接: https://pan..com/s/1Ck9uw8pwDivK5DWadL0roA
C語言將UTF-8編碼的txt文件改成ANSI編碼
⑦ 怎樣在c語言中修改已錄入的文件信息,謝謝
用FILE定義文件指針
FILE
*fp;
fp=fopen("文件名","a");//往原文件追加數據
fp=fopen("文件名","w");//重建文件,採用這種方式之前你應該將原文件中的數據都存儲到內存中
操作完畢後應該用fclose(fp);關閉文件,否則會丟失數據
⑧ 如何更改C語言的文件名(如下圖)
點擊菜單欄上的文件按鈕,可以看到另存為,可以把程序文件存成其他的名字。
還有一個方法是,關閉vs,然後找到工程文件夾,找到 練習.c,然後點右鍵,選擇重命名即可。
⑨ C語言怎麼修改文件信息
#include<stdio.h>
#include<stdlib.h>//文件操作函數頭文件
struct st{//定義一個結構體
char a[11];//301
char b[11];//01
char c[29];//xiaoming
char d[9];//m1
};
int main()
{
FILE *fp;//文件指針
fp=fopen("D:\123.txt","r+");//用fopen函數打開D盤下,名為123.txt的文件;
struct st s={"301","01","xiaoming","m"};//各成員的初值;
scanf("%s%s",s.c,s.d);//輸入之後會把原有的信息覆蓋掉;
fprintf(fp,"%s %s %s",s.a,s.b,s.c,s.d);//用fprintf函數將固定格式的數據寫入文件;
printf("%s %s %s %s",s.a,s.b,s.c,s.d);
fclose(fp);
return 0;
/*這樣就可以修改文件內容了,之前沒仔細看,沒看到是文件操作*/
}