【问题标题】:I cant print something after while-loop [duplicate]在while循环后我无法打印一些东西[重复]
【发布时间】:2021-03-26 13:47:57
【问题描述】:
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”不起作用,并且应用程序没有任何打印输出... 请帮忙。

【问题讨论】:

  • 这段代码有未定义的行为,因为它在初始化之前访问了word

标签: c++ while-loop cout


【解决方案1】:
 while(word != '\n')

这永远不会是真的。因为,默认情况下,std::cin 具有在读取字符时跳过空格的设置。要更改该设置,请使用

std::cin >> std::noskipws;

这是为了回答您的具体问题。但是,您的代码中还有其他问题,例如:

  • 在第一次迭代中,单词未初始化。
  • 对于表示单个字符的变量名,“word”可能是一个糟糕的选择;
  • 选择的递增 i 的方式,
  • 一些变量的范围,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-17
    • 2019-05-09
    • 2018-09-25
    • 1970-01-01
    • 2012-06-09
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多