C++打開和寫入文件fopen和fopen_s

C++打開和寫入文件fopen()和fopen_s()

參考了https://blog.csdn.net/qq_35263780/article/details/79870792

fopen :

FILE *fp1;//建立一個文件操作指針
fp1= fopen (“111.txt”, “a”); //將指向這個文件的文件流給fp1
fprintf(fp1,“input format : %s \n”, name); //寫入,會返回值表明有沒有成功
fclose(fp1);

注意fopen函數在vs2019可能會報錯,說不安全(但是有時候又不報錯?很奇怪不知道具體原因是什麼),提示要用fopen_s()。實際上硬要用fopen也是可以的,需要加入定義:
#define _CRT_SECURE_NO_WARNINGS
加在代碼最上方即可。

fopen_s :

FILE *fp1;//建立一個文件操作指針
errno_t err; //判斷此文件流是否存在 存在返回1
err = fopen_s(&fp1,“File Information.txt”, “a”); //若return 1 , 則將指向這個文件的文件流給fp1
fprintf(fp1,“input format : %s \n”,name); //寫入
fclose(fp1);

訪問方式:

“r”
打開以進行讀取。如果該文件不存在,或無法找到,fopen_s調用失敗。
“w”
打開一個空文件以進行寫入。如果該文件存在,其內容將被銷燬。
“a”
打開以進行寫入 (追加) 而不將新數據寫入文件之前刪除的 EOF 標記文件的末尾。如果它不存在,則創建該文件。
“r+”
將打開並讀取和寫入。 (該文件必須存在。
“w+”
打開一個空的文件進行讀寫。如果該文件存在,其內容將被銷燬。
“a+”
將打開並讀取文件和追加。追加操作包括刪除 EOF 標記的新數據寫入到文件並在編寫完成後還原 EOF 標記之前。如果它不存在,則創建該文件。
通過打開文件時"a"或"a+"訪問類型,所有寫操作出現在文件的結尾。可通過使用定位文件指針fseek或rewind,但其始終移回至該文件的末尾之前任何寫入,因此無法覆蓋現有數據執行操作。
"a"模式下不會追加到該文件之前刪除 EOF 標記。追加發生後,MS-DOS TYPE 命令僅顯示最原始的 EOF 標記的數據和追加到文件中沒有任何數據。"a+"模式不會追加到該文件之前刪除的 EOF 標記。後追加,MS-DOS TYPE 命令在文件中顯示所有數據。"a+“模式所需的追加到流文件,將終止通過使用 CTRL + Z EOF 標記。
當"r+”,“w+”,或"a+"指定訪問類型,允許讀取和寫入。 (就說是打開"更新"文件)。 但是,當從閱讀切換到書寫,輸入的操作必須會遇到 EOF 標記。如果沒有任何 EOF,則必須使用中間文件定位函數調用。文件定位函數是fsetpos,fseek,和rewind.從讀數到寫切換時,您必須使用中間調用fflush或文件定位函數。

發佈了7 篇原創文章 · 獲贊 5 · 訪問量 440
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章