2013-03-24 59 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,除非您准备处理 负值。

相关问题