我有代碼,其中用戶輸入兩個字符到一個string
變量。我有一個函數驗證用戶輸入只有兩個字符長,並且它只包含有效的十六進制數字。將兩個字符的字符串變量轉換爲十六進制
我想寫這些數字到32字節長的二進制文件。我想:
outFile.write((char*)&string[0], 1);
在運行32次(我想要寫一次一個字節)來測試一個循環,但它只是寫的ASCII碼的字符,而不是實際字符本身。我期望它寫一個nybble並跳過一個nybble,但是它寫了一個完整字節的ascii信息。所以我試過:
outFile.write((unsigned char*)&string[0], 1);
但我的編譯器抱怨說它是一個無效的轉換。
我想解決這個問題,而不會將字符串轉換爲c樣式的字符串。換句話說,我想string
包含兩個字符,並代表一個字節的信息。不是四個(加上空字符)。
不能這樣做的。 g ++ 4.7.2抱怨stoi不是std的成員,即使使用'#include'和C++ 11啓用(它是默認情況下)。 –
user2048881
@ user2048881:我無法幫助您的標準庫不完整。它當然是[標準的一部分](http://en.cppreference.com/w/cpp/string/basic_string/stol),所以向libstdC++維護者抱怨。 –
我知道這是標準的一部分。謝謝,不過。我有點希望你能幫我找到一種替代方法來做到這一點,或者是一種解決方法。不過謝謝你。 – user2048881