C 檔案操作(向 txt檔案寫入資料)

2021-08-25 14:04:24 字數 3157 閱讀 6485

本文講解的是向.exe同一目錄下的data資料夾下的log.txt寫入資料。

假若.exe所在路徑是e:\projects\logout\log\debug。

1.1向上一級目錄指向

./    表示當前路徑,相當於e:\projects\logout\log\debug

../  表示當前路徑的上一級路徑,相當於e:\projects\logout\log

../../  表示當前路徑上上一級路徑,相當於e:\projects\logout

更多指向上級路徑的表示以此類推。

1.2 向下一級目錄指向

./data  表示當前路徑下一級路徑,相當於e:\projects\logout\log\debug\data

./data/***   表示當前路徑的下下一級路徑,相當於 e:\projects\logout\log\debug\data\***

更多向下指向的路徑的表示以此類推。

檢查資料夾data是否存在。

/**

*@param path 檔案路徑,可以具體到檔名(如.txt)

*@param mode 檢查模式,00(檔案路徑是否存在),02(只寫),04(唯讀),06(讀和寫)

*@return -1(失敗)

*/ int _access(const char *path, int mode);

如果資料夾data不存在,則要建立資料夾。

/**

*@param dirname 檔案路徑,只能包含資料夾路徑,不能包含具體檔名(如.txt)

*@return -1(建立失敗)

*/int _mkdir(const char *dirname);

_mkdir建立的是資料夾路徑,要想得到完整的路徑,就要將它與檔名連線起來。

/**

*將源字串連線到目標字串後面

**@param strdestination 目標字串

*@param numberofelements 目標字串緩衝區大小

*@param strsource 源字串

**numberofelements是合併字串後的字元數量。 即,源串大小 + 目標串大小 + 字串結束符大小("\0")。

*當numberofelements小於合併字串後的字元數量時會導致執行錯誤,它的值必須大於等於合併字串後的字元數量

*/errno_t strcat_s(char *strdestination, size_t numberofelements, const char *strsource );

/**

*@param [out]pfile 指向檔案指標的指標,檔案指標將接收指向已開啟檔案的指標。

*@param [in]filename 檔名路徑。

*@param [in]mode 允許的訪問型別。

*@return 0(成功)

*/errno_t fopen_s(file** pfile, const char *filename, const char *mode);

字串mode指定對檔案請求的訪問型別,如下所示。

"r"

開啟以便讀取。 如果檔案不存在或找不到,fopen_s呼叫將失敗。

"w"

開啟用於寫入的空檔案。 如果檔案存在,則其內容會被銷毀。

"a"

在檔案末尾開啟以進行寫入(追加),在將新資料寫入到檔案之前請勿刪除 eof 標記。 如果檔案不存在,則建立檔案。

"r+"

開啟以便讀取和寫入。 (該檔案必須存在。)

"w+"

開啟用於讀取和寫入的空檔案。 如果檔案存在,則其內容會被銷毀。

"a+"

開啟以進行讀取和追加。 追加操作包括在將新資料寫入檔案之前刪除 eof 標記並在寫入完成後還原 eof 標記。 如果檔案不存在,則建立檔案。

/**

*@param filename 檔名路徑

*@param buf 資料緩衝區

*@return 返回寫入的位元組數

*/int fprintf(file* filename,const char* buf);

寫入完成後記得重新整理緩衝區

/**

*重新整理緩衝區

**@param stream 檔名路徑

*@return 0(成功重新整理緩衝區)

*/int fflush(file *stream);

/**

*關閉檔案

**@param stream 檔名路徑

*@return 0(成功關閉),eof(出現錯誤)

*/int fclose(file *stream);

#include "stdafx.h"

#include #include #include using namespace std;

int main()

} char *file = "/log.txt";

strcat_s(path, sizeof(path), file); //連線完整的檔案路徑

file* fp;

if (fopen_s(&fp, path, "a") != 0) //開啟檔案

return -1;

char buffer[1024] = "a test of file operations.";

int numberofbuffer = fprintf(fp, buffer); //寫入資料到log.txt

fflush(fp); //重新整理緩衝區

if (fclose(fp) != 0) //關閉檔案

return -1;

return 0;

}

C 寫入txt 檔案

filestream fs new filestream c s.txt filemode.create,fileaccess.write streamwriter sw new streamwriter fs sw.basestream.seek 0,seekorigin.begin for in...

C 寫入資料到txt檔案

string readme readme.txt 檔名稱 string txtpath path readme 檔案存放路徑 directoryinfo directoryinfo new directoryinfo path if directoryinfo.exists 判斷 資料夾是否存在 i...

txt檔案寫入

txt檔案的讀取 public static void main string args system.out.println 一共行數 i 寫入txt檔案 方法一 file file new file g aaa bbb ceshi.txt 相對路徑,如果沒有則要建立乙個新的output。txt檔...