我有一個會字符讀取的二進制文件。每個角色被別人轉移到左側未知的次數(假設換行)。我希望能夠在每一個字符閱讀,然後換向右移(的次數轉向我想將不得不手動想通了,因爲我還沒有想出另一種方式)。用換行位移位字符? C++
所以,我現在的想法是,我在字符閱讀,創建臨時副本,然後使用XOR:
char letter; //will hold the read in letter
char temp; //will hold a copy of the letter
while(file.read(&letter, sizeof(letter)) //letter now holds 00001101
{
temp = letter; //temp now holds 00001101
letter >>= 1; //shift 1 position to the right, letter now holds 00000110
temp <<= 7; //shift to the left by (8-1), which is 7, temp now holds 10000000
letter ^= temp; //use XOR to get the wrap, letter now holds 10000110
cout << letter;
}
這是有道理的,我疲憊的頭,但它不工作..我無法弄清楚爲什麼。字符的大小是1個字節,所以我認爲我只需要篡改8位。
任何幫助,將不勝感激。
編輯:解決。非常感謝大家。愛這個社區去死吧,你們真棒!
你」已經告訴我們你的期望 - 你實際上得到了什麼? – 2013-03-26 21:57:06
@sftrabbit一些神祕混亂的外表。 – 2013-03-26 21:57:57
你正在閱讀到'letter'每個循環兩次,棄去先讀取值 – jthill 2013-03-26 21:59:55