本文講解的是向.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檔...