如何在没有cin.get的情况下使这项工作成为可能()
问题描述:
我该如何改变它,使其无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;
}
答
这还不是很清楚你甚至试图做什么。你把 带回cin.get()
的返回值,所以它的效果只是 从输入流中提取一个字符,并执行与提取字符相关的任何一个方面 。 (std::cout
是 绑std::cin
默认情况下,这样的副作用之一将 是刷新std::cin
。)如果你想冲洗,你可以做到这一点 直接,例如std::cout.flush()
,或简单地std::cout << c << flush
。请注意,然而,输出一个字符可能不会做 你想要的。如果要输出c
, 的实际值,而不是将其解释为编码字符,那么您首先需要 将其转换为大于char
的整数类型。而 当然,如果使用简单字符进行签名,您可能首先需要将其 转换为unsigned char
,除非您准备处理 负值。
为什么你有'cin.get()'在那里呢? – Mat 2013-03-24 18:26:33
请定义“作品”。由于您不使用'cin.get()'的结果,您应该可以简单地删除该行。 – 2013-03-24 18:27:03
因为没有它,cout不会显示c – user2175394 2013-03-24 18:27:28