2013-12-20 74 views
0

主要初學者在這裏,我怎麼能遍歷用戶輸入的每一個字符使用:通過用戶輸入的每一個字符循環

get(char& c) 

我想用它在一個循環做的東西每字符(包含空格),但目前我無法使其正常工作。

如果可以,請提供示例代碼。

感謝

這是我現在所擁有的:

for (char& c : cin.get(char& c)) { 
    cout << c; 
} 
+1

您可以顯示您迄今爲止所嘗試的內容嗎?我們可以幫助您解決實際問題? – newfurniturey

+1

你可以遍歷'std :: string'。運算符'[]'應該在每個索引處給出字符。 – Mahesh

+1

不,我需要使用get。 – user2891805

回答

3

就我個人而言,我會這樣寫;

std::string s; 
while(std::getline(std::cin, s)) { 
    for(char c : s) { 
     std::cout << c; 
    } 
} 

雖然不要忘記佔用'\ n'分隔符,如果你想保留它。請注意,除非您打開終端緩衝區(非標準),否則無論如何您只能逐行輸入。

請注意,您可以通過發送信號結束文件來結束循環。在linux上,用戶必須按下Ctrl + d。

否則你可以添加一些邏輯到循環中斷。例如,

if(c == 'q') break; 
0

,你可以對輸入的字符循環,直到輸入的字符是enter(ASCII碼13)

char c; 

while ((intVal = (int)cin.get(c)) != 13){ 
...do processing on the character 'c' 
} 

或使用

char c; 
    int intVal=0; 

    while ((c = cin.get()) != 13){ 
    ...do processing on the character 'c' 
    } 
+0

錯誤:'c'未在此範圍內聲明。 – user2891805

+0

謝謝。雖然現在我得到:'得到'沒有在此範圍內申報 – user2891805

+0

然後使用cin.get而不是獲取 – gaurav5430

相關問題