我正在将一个值传递给一个将Celsius转换为Fahrenheit的函数,但是控制台会输出一个错误代码,当我谷歌它时,它不会显示任何内容。
// Function Declarations
float fToC(float degreesF = 32.0);
int main() {
float fahrenheit = 10;
float centigrade = 10;
centigrade = fToC(fahrenheit);
cout << "Freezing Point: " << fToC << "C" << endl;
return 0;
}
// Function Defintions
float fToC(float degreesF) {
float degreesC = ((5.0 / 9.0)*(degreesF - 32));
return degreesC;
}
打印到控制台:
Freezing Point: 00A31627C
我做错了什么?
答案 0 :(得分:9)
这是因为您正在打印该功能而不是摄氏度。
控制台中的 cout << "Freezing Point: " << fToC << "C" << endl;
显示该函数的内存地址。
您应该执行以下操作:
cout << "Freezing Point: " << centigrade << "C" << endl;
答案 1 :(得分:8)
但是控制台会输出一个错误代码,当我使用它时,它不会显示任何内容。
这不是错误代码。
你错过了调用函数的括号:
cout << "Freezing Point: " << fToC(farenheit) << "C" << endl;
// ^^^^^^^^^^^
而是打印功能地址。
你可能打算打印
cout << "Freezing Point: " << centigrade << "C" << endl;
因为您已通过调用函数计算了该值。
答案 2 :(得分:7)
那么,
cout << "Freezing Point: " << fToC << "C" << endl;
为您提供流行测验:什么是&#34; fToC&#34;?为什么,它是你的功能,你看到的结果是你的功能代码所在的无意义的内部存储器地址。
你可能想写:
cout << "Freezing Point: " << centigrade << "C" << endl;
不幸的是,计算机只会执行您要求它执行的操作,而不是您希望它执行的操作。
答案 3 :(得分:7)
这是错误的:
cout << "Freezing Point: " << fToC << "C" << endl;
您将fToC传递给控制台,因此它会打印该功能的地址。删除fToC并写入摄氏度。
答案 4 :(得分:6)
cout << "Freezing Point: " << fToC << "C" << endl;
不正确。您无法在此类cout
中输出功能名称,希望它能为您提供所需的结果。它将打印出函数存储的地址。但是,您可以调用该功能
cout << "Freezing Point: " << fToC(fahrenheit) << "C" << endl;
因为fToC(fahrenheit)实际上是float
,带有你给它的参数,所以你应该得到你想要的答案而不是函数地址。你也可以使用:
cout << "Freezing Point: " << centigrade << "C" << endl;
您在上一行中定义的。