2015-11-05 20 views
3

我正在使用Windows 10上的Visual Studio Express 2013在C++中進行撲克遊戲。當我使用以下代碼將套裝分配到我的卡片時,控制檯顯示所有問號西裝的地方。ascii在C++中的心臟窗口10不在顯示

void printHand(Card hand[]) 
{ 

    const string SUIT = "\3\4\5\6"; 
    const string RANK = "23456789TJQKA"; 

    cout << "Your hand is: "; 

    for (int i = 0; i < SIZE; i++) 
    { 
     cout << RANK[hand[i].ranks] << SUIT[hand[i].suits] << " "; 
    } 
    cout << endl; 
} 

當我改變了適合於其他角色我得到正確的字符,例如問號,冒號......當我運行一個for循環來顯示所有的ASCII字符,前32個字符顯示爲喜歡控制字符無法識別字體。

我的問題是這是因爲Visual Studio 2013 Express,Windows 10還是我的機器。

+0

是什麼讓你覺得'\ 3'編碼一套西裝?你的期望來源是什麼,這將起作用? –

+0

字符代碼3是心臟的「OEM」代碼。 –

+0

在命令窗口中嘗試使用不同的字體。您可以通過輸入'echo'進行測試,然後按住控制鍵和D鍵(這將顯示爲'echo^D'),然後按回車。你應該看到鑽石的象徵。如果沒有,請更改命令窗口中的屬性並選擇其他字體。 – 1201ProgramAlarm

回答

0

有一些事情你必須檢查:

  • 確保您的控制檯使用代碼頁437
  • 如果做不到這一點,確保你的程序的語言環境是默認的「C」語言環境。

讓我們知道它是否仍然無法正常工作。

+0

是的,我正在使用代碼頁437,我的程序位於C:\ Visual Studio文件夾中。 – ARockwell

+0

我無法複製你的錯誤。你還有什麼改變了默認值?你是從IDE運行它嗎? –

+0

我沒有改變任何東西。這是一個班級,我的老師也不能回答這個問題。現在更加麻煩,因爲我只是使用其他符號來穿西服。 Visual Studio的使用是即插即用的。 – ARockwell

3

選中屬性中的「使用舊控制檯」或類似的東西(我的瑞典語)中的複選框。這解決了我的問題。

+0

多數民衆贊成在工作,非常感謝 –