奇怪的檔案讀寫程式?

2021-04-07 06:03:57 字數 735 閱讀 7983

看到乙個帖子,說程式比較怪,char型別的數,從0開始增加往檔案裡面寫進入儲存,本來想在200的時候中止,但是到25的時候,下面一次讀出來的就是「-52」了!程式如下:

file *fp1;

if((fp1=fopen("c://program files//windows.ctx","r"))==null)

fclose(fp1);

fp1=fopen("c://program files//windows.ctx","r");

char b;

fseek(fp1,0,0);

fread(&b,1,1,fp1);

fclose(fp1);

fp1=fopen("c://program files//windows.ctx","w");

if(b<201 && b>0)

b++;

fwrite(&b,1,1,fp1);

}else

fclose(fp1);

看到程式,我試了一下,也覺得很奇怪。通過除錯發現,不是讀出來的「-52」,而是沒有讀出來,fread函式返回0,表示沒有讀到數。為什麼會讀不到數呢?

通過ultraedit的輔助,發現並不是沒有寫入,也不是寫入錯誤,是寫入了26之後就讀不出來了??

26是什麼?原來程式預設的開啟方式是文字的方式,因此讀到26(就是ctrl+z,eof)就表示檔案結束,所以就什麼也讀不到了。

看來寫程式還是得注意函式的返回值;還有就是多看看msdn。

建立INI檔案讀寫程式

ini檔案是一種常用的儲存應用程式配置的檔案,在早期的應用程式中有大量的應用,目前已經逐漸被xml檔案所替代。但在windows作業系統中還存在大量的ini配置檔案,一些應用程式依然使用ini檔案作為引數的儲存手段。如windows目錄下odbc.ini檔案,儲存了odbc配置。ini配置檔案儲存的...

C中關於檔案的讀寫程式

1.讀檔案 include include includevoid main while c fgetc fp eof while feof p putchar c 以上注釋的修改也可以讀出檔案內容 fclose fp printf n system pause 2.寫檔案 include incl...

檔案的讀寫

eg 文字中每一行的資料結構,它們是以tab鍵為間隔的 afghanistan baghlan 36.12 68.7 afghanistan balkh 36.758 66.896 include stdafx.h include fstream include using namespace st...