2017-03-09 29 views
0

形勢文件寫作()FSEEK()與SEEK_END

我試圖以編程方式編寫一些代碼來一個文件,然後進行編譯。我需要能夠在不替換整個文件的情況下添加代碼。我在文件末尾有一個},我需要刪除它才能添加下一批代碼,之後讀取}

我的代碼是目前這樣的:

//Writes from an offset from the end of a file. 
    static bool Write(const char *FilePath, const char *Text) 
    { 
     FILE *f; 
     errno_t error; 
     int seekerror; 
     if (!(error = fopen_s(&f, FilePath, "w"))) 
     { 
      //one byte offset from the end of the file. 
      if (!(seekerror = fseek(f, -1, SEEK_END))) 
      { 
       fwrite(Text, sizeof(char), strlen(Text), f); 
       fclose(f); 
       return true; 
      } 
     } 
     return false; 
    } 

問題

我相信wa標誌從fseek()重寫指針位置?所以我似乎無法覆蓋文件末尾的}

有沒有人知道我可以使用SEEK_END來寫偏移量?

回答

1

請勿使用"w"模式代替fopen,請使用"r+"代替。

"r" - 打開文件進行閱讀。該文件必須存在。

"w" - 創建一個空文件用於書寫。如果已存在同名文件 ,則其的內容將被刪除,並將該文件視爲新的空文件。

"a" - 附加到文件。寫入操作,在 文件末尾追加數據。如果該文件不存在,則會創建該文件。

"r+" - 打開一個文件更新讀取和寫入。該文件必須存在。

"w+" - 創建一個用於讀取和寫入一個空文件。

"a+" - 打開一個文件進行讀取和追加。