2016-05-17 51 views
-1

對不起,我在本網站讀了很多Q & A,由於我基本上只是啓動C++而只是以前用C#和Java編碼 我有一個保存文件,並使用十六進制編輯程序,我發現一個值可以修改廣告系列難度; enter image description here用C++修改保存文件的字節(十六進制?)

的「00」高亮值是什麼,我想改變,我所看到的例子,但什麼,我完全理解,足以操縱

std::ofstream ofs ("/text.txt", std::ofstream::out);//("/JKSV/Saves/Fire_Emblem__Awakening/hack/", std::ofstream::out); 
    //Edit item at 0000000D '00' to '01' 
    ofs.close(); 

我知道我的問題,把人與適當的知識的C++是非常微不足道的,但它對我來說仍然很新穎

+0

您如何識別要更改哪個字節?任何需要修改的特定偏移量?在整個文件中需要替換的任何模式?首00將被01取代? – bashrc

+0

它每次都在相同的位置,突出顯示'00',它始終在'78 02 00' – Cacoon

+0

之後。所以你想要替換偏移量0x0D處的值? – bashrc

回答

3

您將需要打開binary mode中的文件,以便I/O庫限制特殊字符的解釋。

fstream binaryFile("txt.txt", ios::in | ios::out | ios::binary); 

您可能要檢查可用的功能在fstream

seek的位置,你要修改的字節值:

binaryFile.seekp(0x0D/*offsetToWrite*); 

寫字節值:

binaryFile << char(0x01/*ValueToReplace*/); 
+0

輝煌,我相信它的工作,它是有道理的,你是如何做到的。 我確實找到了seekp函數,但由於它是非二進制文件,我不確定它是否適用或如何編寫它,非常感謝! – Cacoon

相關問題