1.文件的打開和關閉
fopen有2個參數,第一個是文件的名字,第二個是打開的模式(例如是讀文件還是寫文件)
(1)該文件夾下面沒有data.txt文件,但是我執行了read操作,所以會顯示這樣的錯誤
(2)如果是寫的話,就會創建一個新的文件,不會報錯
(3)每一個被使用的文件都在內存里面開辟了文件信息區,用來保存相關的信息,這些信息放在
結構體里面,一般通過FILE指針維護這個變量,簡稱文件指針;
(4)關閉文件fclose(pf),它的參數就是我們命名的文件指針
(5)我們使用printf,scanf這些函數的時候,當程序開始運行,就會默認的打開3個流--標準輸入流
stdin---標準輸出流stdout---標準錯誤流stderr,所以我們可以直接的輸入輸出,但是對于文件的話,
肯定不能說是默認打開某個文件,所以我們需要人為地進行打開和關閉的操作;
2.文件的讀寫
------fputc/fgetc
(1)順序讀寫:就是把上面的’a''b''c'字符打印到文件里面,放到文件里面
我們也可以使用循環打印字符到相應的文件里面,放到控制臺里面
stdout直接打印到屏幕上面
---------------------------------
讀文件:fopen的第二個參數修改成r
(1)輸出原來的文件里面的內容(把文件內容顯示出來)
(2)從鍵盤上面寫,然后輸出內容,使用stdin(把輸入的內容顯示出來)
---------------------------------------------------------------------------------------------------------------------------------
------fputs/fgets
(1)寫入一行數據,
(2)讀出一行數據
這個里面有3個參數,多了第二個參數,就是讀取的個數,最后會打印num-1個字符,我們寫的是
10,最后輸出了9個文件里面的字符;
一行8個字符,你想讓他讀取10個,他最多會讀取8個,因為遇到斜杠n就會提前結束;
---------------------------------------------------------------------------------------------------------------------------------
------fprintf/fscanf
fprintf和printf的不同就是前面多了個參數,也就是我們定義的文件指針
fscanf也是前面加上一個文件指針
這個里面的輸出也可以使用fprintf(stdout,"%d %f",sa,s.b);
---------------------------------------------------------------------------------------------------------------------------------
------scanf/sprintf
sprintf
就是把所有的內容放到arr數組里面,然后進行打印;
sscanf就是把s里面的東西放到temp這個結構體變量里面,最后printf打印輸出
------辨析總結
---------------------------------------------------------------------------------------------------------------------------------
------fwrite/fread
以二進制的方式進行讀寫
寫進去的是二進制文件,所以我們看不懂
八度進去的東西寫出來,果然讀取進去了,fread的返回值是實際讀取的個數,可能比我們想要讀取的數字小。