为什么这个函数代码不起作用
Why is this function code not working?
我现在正在努力学习C++和我的函数。这个代码应该将英尺转换为米。这是我的一些代码:
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <iomanip>
using namespace std;
void instructions(void);
double feetToMeters(double);
int main(int nNumberofArgs, char* pszArgs[])
{
instructions();
feetToMeters(double);
system("PAUSE");
return 0;
}
void instructions(void)
{
cout << "enter a number of feet to convert to meters: ";
return;
}
double feetToMeters(double feet)
{
cin >> feet;
double meters = feet * 3.28084;
cout << "That is " << meters << " meters";
return meters;
}
并且我得到"在'double'之前预期的主表达式"。如何使其正确运行?
"为什么这个函数代码不工作?"问题的技术答案是您的代码行
feetToMeters(double);
正在尝试调用参数为double
的函数(feetToMeters
)。但是,double
不是C++中的一个值。这是一个保留字,代表一种类型。如果你想让函数进行计算,你必须给它传递一个合法的值。
您的代码需要重新组织一下。您似乎想编写一个函数来根据发送的参数进行转换,但在函数内部,您读取了要从cin
转换的值。你不能两全其美。正确的方法是在main
中进行读取,然后将读取的值传递给函数。则main
变为:
int main(int nNumberofArgs, char* pszArgs[]) {
double feet;
instructions();
cin >> feet;
feetToMeters(feet);
system("PAUSE");
return 0;
}
接下来,从feetToMeters
函数中删除在feet
中读取的行(因为它现在在main
中),留下:
double feetToMeters(double feet) {
double meters = feet * 3.28084;
cout << "That is " << meters << " meters";
return meters;
}
因为你以前已经读过了。
顺便说一句,我也会把输出线(cout << ...
)放在main
里面。这样,函数只进行转换,main
处理所有用户交互(输入和输出)。
您必须将一些参数而不是'double'传递给feetToMeters:
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <iomanip>
using namespace std;
void instructions(void);
double feetToMeters(double);
int main(int nNumberofArgs, char* pszArgs[])
{
instructions();
// get the feet value
cin >> feet;
// pass the parameter
feetToMeters(feet);
system("PAUSE");
return 0;
}
void instructions(void)
{
cout << "enter a number of feet to convert to meters: ";
return;
}
double feetToMeters(double feet)
{
double meters = feet * 3.28084;
cout << "That is " << meters << " meters";
return meters;
}
或定义不带任何参数的feetToMeters
函数:
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <iomanip>
using namespace std;
void instructions(void);
double feetToMeters(void);
int main(int nNumberofArgs, char* pszArgs[])
{
instructions();
// call function without parameter
feetToMeters();
system("PAUSE");
return 0;
}
void instructions(void)
{
cout << "enter a number of feet to convert to meters: ";
return;
}
double feetToMeters(void)
{
double feet;
cin >> feet;
double meters = feet * 3.28084;
cout << "That is " << meters << " meters";
return meters;
}
相关文章:
- 为什么这段代码不起作用,我该如何解决?
- 为什么这些完全相似的代码不起作用?
- 我不明白为什么我的代码不起作用并且需要更长的时间来运行
- 我正在尝试解决一个需要数组总和值但代码不起作用的问题,我想做这样的事情
- 注释一行使代码工作,而没有它,代码不起作用
- 我的C++合并排序代码不起作用。我在这里错过了什么?
- C ++函数重新定义(代码不起作用 - 逻辑错误)
- 试图找到一个数字的平方根,但代码不起作用。C++
- 字符串代码不起作用
- 我正在努力在随机数组中查找最小值,有人知道为什么我的代码不起作用?C++
- 从 C++ 转换的 C# 代码不起作用
- 有人可以解释我,为什么我的代码不起作用吗?
- 当我使用长整型时,我的代码不起作用,它与 int 一起工作得很好
- 无法在控制面板中创建轨道栏.示例代码不起作用
- CUDA我的共享内存代码不起作用,我缺少什么
- 为什么 C++ 中的 shell 脚本代码不起作用?
- 为什么C++代码不起作用(strncpy_s)?
- 模板函数声明为 void - 代码不起作用?
- 无法弄清楚为什么这个Arduino代码不起作用?
- "check if member exists using enable_if"中修改的代码不起作用