2013-12-17 37 views
0

我在C++写一个转换器形式的意大利lires为欧元:错误:预计','或';'前“{”令牌“和”不能被用作函数

#include <iostream> 

using namespace std; 

float x; 

int converter (x) 
{ 
    y = x/1936,27; 
    return y; 
} 

int main() 
{ 
    cout << "Give me the value: "; 
    cin >> x; 
    converter (x); 
} 

我尝试编译它,我看到了两个错误。第一个是:

lire-euro.cpp:8: error: expected ‘,’ or ‘;’ before ‘{’ token 

我在括号之前定义了一个函数。为什么我应该在'{'之前放','或​​3210? 第二个是:

lire-euro.cpp: In function ‘int main()’: 
lire-euro.cpp:17: error: ‘converter’ cannot be used as a function 

为什么我不能用converter的功能?这与其他错误有关吗?

回答

3

你的函数参数列表中缺少参数类型:

int converter (float x) { ... 
//    ^^^^^ 

除此之外,您使用的y功能,这是未申报的体内。您可以通过返回表达式来解决该问题,但您可能必须将浮点字面上的,替换为.,具体取决于您的语言环境。

return x/1936.27; 

注意,这可能更有意义返回一个浮点数,而不是一个int

最后,我认为没有理由让x成为全球性的。你可以声明它在main()之内:

#include <iostream> 

int converter(float x) 
{ 
    return x/1936.27; 
} 

int main() 
{ 
    float x; 
    std::cout << "Give me the value: "; 
    std::cin >> x; 
    int z = converter(x); 
} 
1

你在函数定义中有两个错误。首先它的参数x没有类型说明符,它的局部变量y也没有被定义。

我认为你的意思

float x; 

int converter() 
{ 
    int y = x/1936,27; 
    return y; 
} 

虽然我不知道Y(和函数的返回类型)是否应该被定义为int。

的functioo的相应的呼叫可能看起来如

cout << converter() << endl; 
+0

第三,虽然不是错误时,'converter'可以改写成'X/1936; int y = 27;'为了清楚起见。 :) – mars

+0

@mars,你是对的。我没有看到有逗号。 –

相关问题