我将一个值传递给一个函数来将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;
}
Run Code Online (Sandbox Code Playgroud)
这打印到控制台:
Freezing Point: 00A31627C
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
这是因为你打印出的功能而不是摄氏.
cout << "Freezing Point: " << fToC << "C" << endl; 在控制台中,它显示了该功能的内存地址.
你应该做的事情如下:
cout << "Freezing Point: " << centigrade << "C" << endl;
但是控制台会输出一个错误代码,当我谷歌它时,它不会显示任何内容.
那不是错误代码.
你错过了调用函数的括号:
cout << "Freezing Point: " << fToC(farenheit) << "C" << endl;
// ^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
而是打印功能地址.
你可能打算打印
cout << "Freezing Point: " << centigrade << "C" << endl;
Run Code Online (Sandbox Code Playgroud)
因为你已经通过调用函数计算了值.
好,
cout << "Freezing Point: " << fToC << "C" << endl;
Run Code Online (Sandbox Code Playgroud)
流行测验适合你:什么是"fToC"?为什么,这是你的功能,你看到的结果是你的函数代码所在的无意义的内部存储器地址.
你可能想写:
cout << "Freezing Point: " << centigrade << "C" << endl;
Run Code Online (Sandbox Code Playgroud)
不幸的是,计算机只会执行您要求它执行的操作,而不是您希望它执行的操作.
小智 7
这是错的:
cout << "Freezing Point: " << fToC << "C" << endl;
Run Code Online (Sandbox Code Playgroud)
您将fToC传递给控制台,因此它会打印该函数的地址.删除fToC并写入摄氏度.
cout << "Freezing Point: " << fToC << "C" << endl;
Run Code Online (Sandbox Code Playgroud)
是不正确的.你不能输出的函数名在cout像这样的,希望它会给你你想要的结果.它将打印出函数存储的地址.但是,您可以调用的功能
cout << "Freezing Point: " << fToC(fahrenheit) << "C" << endl;
Run Code Online (Sandbox Code Playgroud)
因为fToC(fahrenheit)实际上是a float,你给它的参数,所以你应该得到你想要的答案而不是函数地址.你也可以使用:
cout << "Freezing Point: " << centigrade << "C" << endl;
Run Code Online (Sandbox Code Playgroud)
您在上一行中定义的.