尽管错误放置了我的函数和cout语句,为什么我的程序仍能正常工作?

时间:2018-02-14 12:36:42

标签: c++ function

理想情况下,我的华氏功能的一些内容应放在主功能中,但想尝试一些东西。我在华氏温度功能中询问用户输入,之后,我在cout语句后调用了华氏温度功能。我期待着你的体温......"首先显示的字符串然后在继续打印字符串之前询问输入。为什么会这样?

#include <iostream>
using namespace std;
int FahrenheitConv();
int main ()
{
    cout << "Your temperature in Fahrenheit is "<< FahrenheitConv();
    return 0;
}

int FahrenheitConv()
{
    double centigrade;
    cout << "What is your temperature in centigrade: ";
    cin >> centigrade;

    double fahrenheit = (1.8) * (centigrade ) + 32;
    return fahrenheit;
}

1 个答案:

答案 0 :(得分:3)

根据N4296

  

1.9程序执行[intro.execution]

     

[...]除非另有说明,评估个体经营者的操作数和个体的子表达式   表达式未被排序。 [注意:在执行期间多次计算的表达式中   一个程序,其子表达式的未经测序和不确定的顺序评估不必如此   在不同的评估中持续执行。 - 结束记录] [...]

所以你不能指望任何特定的顺序,除非是特殊情况,例如逻辑运算符和引入序列点的三元运算符。