1. 程式人生 > >c語言要修改或者讀取、更改txt的話,真的需要好好看下程式碼

c語言要修改或者讀取、更改txt的話,真的需要好好看下程式碼

在C語言中寫檔案
//獲取檔案指標
FILE *pFile = fopen("1.txt", "w"); 
fwrite ("hello",1,strlog("hello"),  pFile);
fflush(pFile); 
在C語言中讀檔案
FILE *pFile=fopen("1.txt","r");
char *pBuf; 
fseek(pFile,0,SEEK_END); 
int len=ftell(pFile); 
 pBuf=newchar[len+1]; 
 rewind(pFile); 
 fread(pBuf,1,len,pFile); 
 pBuf[len]=0; 
MessageBox(pBuf); 
fclose(pFile);

freopen("檔名.in","r",stdin);
freopen("檔名.out","w",stdout);

檔名是可以改的!“檔名”要與程式碼的名字是一模一樣的!!!(最重要的)

另外:

fopen函式用來開啟一個檔案,其呼叫的一般形式為:
檔案指標名=fopen(檔名,使用檔案方式);
"檔案指標名"必須是被說明為FILE 型別的指標變數;
"檔名"是被開啟檔案的檔名;
"使用檔案方式"是指檔案的型別和操作要求。
"檔名"是字串常量或字元陣列。
fopen函式用來開啟一個檔案,其呼叫的一般形式為:c語言fopen函式
檔案指標名=fopen(檔名,使用檔案方式);
其中,
“檔案指標名”必須是被說明為FILE 型別的指標變數;
“檔名”是被開啟檔案的檔名;
“使用檔案方式”是指檔案的型別和操作要求。
“檔名”是字串常量或字串陣列。
例如:
FILE *fp;
fp=fopen("file a","r");
其意義是在當前目錄下開啟檔案file a,只允許進行“讀”操作,並使fp指向該檔案。
又如:
FILE *fphzk
fphzk=fopen("c:\\hzk16","rb");
其意義是開啟C驅動器磁碟的根目錄下的檔案hzk16,這是一個二進位制檔案,只允許按二進位制方式進行讀操作。兩個反斜線“\\ ”中的第一個表示轉義字元,第二個表示根目錄。
使用檔案的方式共有12種,下面給出了它們的符號和意義。
檔案使用方式
意義
"r"
開啟一個用於讀取的文字檔案
"w"
建立一個用於寫入的文字檔案
"a"
附加到一個文字檔案
"rb"
開啟一個用於讀取的二進位制檔案
"wb"
建立一個用於寫入的二進位制檔案
"ab"
附加到一個二進位制檔案
"r+"
開啟一個用於讀/寫的文字檔案
"w+"
建立一個用於讀/寫的文字檔案
"a+"
開啟一個用於讀/寫的文字檔案
“rt”
只讀開啟一個文字檔案,只允許讀資料
“wt”
只寫開啟或建立一個文字檔案,只允許寫資料
“at”
追加開啟一個文字檔案,並在檔案末尾寫資料
“rb”
只讀開啟一個二進位制檔案,只允許讀資料
“wb”
只寫開啟或建立一個二進位制檔案,只允許寫資料
“ab”
追加開啟一個二進位制檔案,並在檔案末尾寫資料
“rt+”
讀寫開啟一個文字檔案,允許讀和寫
“wt+”
讀寫開啟或建立一個文字檔案,允許讀寫
“at+”
讀寫開啟一個文字檔案,允許讀,或在檔案末追加資料
“rb+”
讀寫開啟一個二進位制檔案,允許讀和寫
“wb+”
讀寫開啟或建立一個二進位制檔案,允許讀和寫
“ab+”
讀寫開啟一個二進位制檔案,允許讀,或在檔案末追加資料
對於檔案使用方式有以下幾點說明:
1) 檔案使用方式由r,w,a,t,b,+六個字元拼成,各字元的含義是:
r(read): 讀
w(write): 寫
a(append): 追加
t(text): 文字檔案,可省略不寫
b(binary): 二進位制檔案
+: 讀和寫
2) 凡用“r”開啟一個檔案時,該檔案必須已經存在,且只能從該檔案讀出。
3) 用“w”開啟的檔案只能向該檔案寫入。若開啟的檔案不存在,則以指定的檔名建立該檔案,若開啟的檔案已經存在,則將該檔案刪去,重建一個新檔案。
4) 若要向一個已存在的檔案追加新的資訊,只能用“a”方式開啟檔案。但此時該檔案必須是存在的,否則將會出錯。
5) 在開啟一個檔案時,如果出錯,fopen將返回一個空指標值NULL。在程式中可以用這一資訊來判別是否完成開啟檔案的工作,並作相應的處理。因此常用以下程式段開啟檔案:
6) if((fp=fopen("c:\\hzk16","rb"))==NULL)
{
printf("\nerror on open c:\\hzk16 file!");
getch();
exit(1);
}
這段程式的意義是,如果返回的指標為空,表示不能開啟C盤根目錄下的hzk16檔案,則給出提示資訊“error on open c:\ hzk16 file!”,下一行getch()的功能是從鍵盤輸入一個字元,但不在螢幕上顯示。在這裡,該行的作用是等待,只有當用戶從鍵盤敲任一鍵時,程式才繼續執行,因此使用者可利用這個等待時間閱讀出錯提示。敲鍵後執行exit(1)退出程式。
7) 把一個文字檔案讀入記憶體時,要將ASCII碼轉換成二進位制碼,而把檔案以文字方式寫入磁碟時,也要把二進位制碼轉換成ASCII碼,因此文字檔案的讀寫要花費較多的轉換時間。對二進位制檔案的讀寫不存在這種轉換。
8) 標準輸入檔案(鍵盤),標準輸出檔案(顯示器),標準出錯輸出(出錯資訊)是由系統開啟的,可直接使用。

案例:

BadBoy_LXY 採納率:50% 6級 2016.07.22
#include <stdio.h>
int main(void)
{
 char fname[260]={0};
 
 printf("please input file name:");
 fgets(fname,260,stdin);
 remove(fname);
 FILE *fp=fopen(fname,"w");
 fflush(fp);
 clearerr(fp);
 fclose(fp);
 printf("success");
 getchar();
  return 0;
}