簡體   English   中英

使用fopen(C編程語言)和“ a +”模式附加文件

[英]Appending Files using fopen (C programming language) and the “a+” Mode

我無法在UTF-8中創建文件進行追加。 MSDN文檔指出,對模式參數使用“ a +”會打開文件以進行“讀取和附加”,這是我需要做的。 由於某種原因,當沒有文件存在並且我正在動態創建一個新文件時,在新文件中創建的BOM或字節順序標記格式錯誤。

基本上,它只寫入3個字節的前2個字節。 本來應該寫字節0xEF,0xBB和0xBF,但是只寫前兩個字節(0xEF和0xBB)。 如果在文本編輯器中查看它,它應該看起來像:,但是看起來卻像這樣:ï»。 有人看過嗎? 可能是已知的fopen錯誤? 這是我用來打開的代碼,我使用一個簡單的fwrite來寫文件。 當我為模式傳遞“ w”(寫)時,一切正常,但BOM表的“ a”或“ a +”格式錯誤:

_tfopen(PathToFile,UNICODE_CHAR_MACRO("a+, ccs=UTF-8"));

我終於想通了。 我們正在使用的第三方軟件實際上是在剝離BOM表的最后一個字節,認為這是文件字符ctrl-z MS-DOS結尾

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM