2012-09-22 78 views
0

我使用的Xcode 4.5,我有我的程序下面的代碼:C++ cin.getline只讀取一個字符

char strChar[5]; 
cin.getline(strChar, 5); 
int i = atoi(strChar); 

當我開始嘗試並輸入號碼,按下第一個數字後, ,控制檯將不再接受任何輸入(除了輸入鍵,在這種情況下,程序會立即返回零)。顯然,我想接受不止一個角色,我該如何做到這一點?

謝謝回答我的問題

回答

2
*******更新*********** 10/04/2012 *********

蘋果已經發布了更新,修復了這個問題。 XCODE 4.5.1(4G1004)

這是Xcodes最新版本(4.5)中的已知錯誤。蘋果知道它並正在開發一個補丁。目前在發稿時,沒有已知的解決方法。現在你只需要在終端中運行程序。

**注意在Xcode的更新版本,命令行工具未安裝自動** 安裝進入的Xcode - >首選項 - >下載 - >安裝的命令行工具

要運行終端中的C++程序:

1.)打開終端。

2)導航到正確的目錄

3)輸入 「make項目名」 減去引號

4)執行程序: 「./projectName」 減去引號

+0

我想這是答案,哈哈,謝謝! – prince

+1

我可以管理的最好的,希望蘋果迅速解決,這絕對是一個痛苦..l99 – metaDNA

+0

@JamesPrince下載更新 – metaDNA

2

如果你想讀取一行,它可能更容易寫:的std ::函數getline(給std :: cin,STR),其中str是類型爲std ::的字符串。 您的示例只讀取5個字符。

注意:如果您不僅要讀取1個數字,而且還要讀取多行上的一串數字,則應將其全部置入循環。

+0

我有同樣的行爲,如果我使用的代碼,控制檯基本上凍結後的第一個字符(但xcode不會崩潰或任何東西) – prince

1

只是說明:你的代碼沒有將字符串讀入「str」,只是「strChar」。

+0

我只是玩弄代碼,它結束了看起來像這樣,我會改變它更有意義。 – prince