问题描述
int main()
{
char word;
int ascii_number,i =0,sum = 0 ;
while(word != '\n')
{
cin>>word;
ascii_number = int(word);
sum = sum + factorial(convert_decimal_to_binary(ascii_number));
i = i+1;
}
cout<<sum/i<<endl;
在最后一行中,“cout”不起作用并且应用程序没有任何打印输出... 请帮忙。
解决方法
while(word != '\n')
这永远不会是真的。因为,默认情况下,std::cin 具有在读取字符时跳过空格的设置。要更改该设置,请使用
std::cin >> std::noskipws;
这是为了回答您的具体问题。但是,您的代码中还有其他问题,例如:
- 在第一次迭代中,word 未初始化。
- 对于表示单个字符的变量名来说,"word" 可能是一个糟糕的选择;
- 选择的增加 i 的方式,
- 一些变量的范围,
- 等