2013-03-24 33 views
-5

我該如何改變它,使其無cin.get?如何在沒有cin.get的情況下使這項工作成爲可能()

void convert(int bit[],string &s) 
{  
    char c = 0; 
    for(int i = 0;i < 8;i++) 
    { 
     c = c+(bit[i] << i); 
    } 
    cin.get(); 
    cout << c; 
} 
+5

爲什麼你有'cin.get()'在那裏呢? – Mat 2013-03-24 18:26:33

+1

請定義「作品」。由於您不使用'cin.get()'的結果,您應該可以簡單地刪除該行。 – 2013-03-24 18:27:03

+0

因爲沒有它,cout不會顯示c – user2175394 2013-03-24 18:27:28

回答

0

這還不是很清楚你甚至試圖做什麼。你把 帶回cin.get()的返回值,所以它的效果只是 從輸入流中提取一個字符,並執行與提取字符相關的任何一個方面 。 (std::cout是 綁std::cin默認情況下,這樣的副作用之一將 是刷新std::cin。)如果你想沖洗,你可以做到這一點 直接,例如std::cout.flush(),或簡單地std::cout << c << flush。請注意,然而,輸出一個字符可能不會做 你想要的。如果要輸出c, 的實際值,而不是將其解釋爲編碼字符,那麼您首先需要 將其轉換爲大於char的整數類型。而 當然,如果使用簡單字符進行簽名,您可能首先需要將其 轉換爲unsigned char,除非您準備處理 負值。

相關問題