2017-08-07 89 views
-4

我試圖讓一個「空間」空間爲0x20又名vk_space,在鏈接提供了這個代碼..允許在字符名C++

不要緊,我做什麼,以解除在該塊代碼它試圖在角色名添加間距時仍然拋出一個錯誤:

if ((*chr) == ' ' || (*chr) == '\t' || (*chr) == '\n' || (*chr) == '\r' 
    || (*chr) == '%' || (*chr) == '#' || (*chr) == '&' || (*chr) == '?' 
    || (*chr) == '+' || (*chr) == '=' 
) 

我想評論這搞好至少應十分第一個爲vk_space。

事實上,我有點接近添加空間,這行代碼整個代碼:

if (!((*chr) >= 48 && (*chr) <=57) //! 0 ~ 9 
    && !((*chr) >= 65 && (*chr) <=90) // ! A ~ Z 
    && !((*chr) >= 97 && (*chr) <=122) // ! a ~ z 
) 

如果我可以理解爲Windows 1251這個上面的代碼中,我相信我能得到它的工作。

在這裏找到按OK並創建角色的過程。

void CUICharacterCreateNew::PressOk() 

代碼位於:

+9

也許使用['std :: isspace'](http://en.cppreference.com/w/cpp/string/byte/isspace)來檢查空間?請不要使用[*幻數*](https://en.wikipedia.org/wiki/Magic_number_(編程))。如果你的意思是「A」字符,那麼*說*如此。或者更好的是,如果你想檢查一個字母數字字符,可以使用['std :: isalnum'](http://en.cppreference.com/w/cpp/string/byte/isalnum)。 –

+4

「嘗試在字符名稱中添加間距時仍會引發錯誤」 - 什麼錯誤?你顯示的代碼不會嘗試添加任何東西。 – VTT

+0

CTString \t strMsg = _S(146,「不要在字符名稱中輸入空格。」); http://prntscr.com/g5bron <--- THERE error live 那就是那個翻譯 –

回答

0

不得不註釋掉所有的字符== '' ||

if(/* (*chr) == ' ' ||*/ (*chr) == '\t' || (*chr) == '\n' || (*chr) == '\r' 
    || (*chr) == '%' || (*chr) == '#' || (*chr) == '&' || (*chr) == '?' 
    || (*chr) == '+' || (*chr) == '=' 
) 

,然後我不得不加32的所有這些

if (!((*chr) >= 48 && (*chr) <=57) //! 0 ~ 9 
    && !((*chr) >= 65 && (*chr) <=90) // ! A ~ Z 
    && !((*chr) >= 97 && (*chr) <=122) // ! a ~ z 
    && !((*chr) == 32) 

我讀這些數字作爲窗口編碼1251 20 =空間..好就來了解一下這些都是底部實際上十進制,我需要他們是十六進制。等等哦:/