编译C ++错误

时间:2015-06-03 02:23:24

标签: c++ compiler-errors

#include "std_lib_facilities.h"

int main()
{
constexpr double euro_to_dollar = 1.11;
constexpr double yen_to_dollar = 0.0081;
double dollar = 1.00;

char unit= 'A';
cout <"Please enter a value followed by e or y: \n";
cin >>dollar>> unit;
if (unit= 'e')
cout << dollar << "Euro == " << euro_to_dollar*dollar << "dollar\n";
else if (unit='y')
        cout << dollar << "Yen== " << yen_to_dollar * dollar << "dollar\n";
}
5   error: 'constexpr' was not declared in this scope  
5   error: expected ';' before 'double'  
7   error: expected ';' before 'double'  
15  error: 'euro_to_dollar' was not declared in this scope

17  error: 'yen_to_dollar' was not declared in this scope

我在Bjarne Stroustrup的编程:原理和实践使用C ++(第2版)中遇到了问题。我可以看到我在这里做错了什么。我是一个学习C ++的人,所以我基本上是初学者。我很感激帮助人员。

2 个答案:

答案 0 :(得分:1)

{+ 1}}关键字是在C ++ 11中引入的,使用constexpr进行编译。
示例:

使用g ++:-std=c++11

代码:: blocks:
设置 - &gt;编译器 - &gt;编译器设置 - &gt;编译器标志 - &gt;勾选方框g++ main.cpp -o program.exe -std=c++11 - &gt;确定

您还要在if语句中分配变量,替换为Have g++ follow the C++ ISO C++ language standard

==

if (unit= 'e')
    //  ^

您在调用std :: cout时错过else if (unit='y') // ^

<

答案 1 :(得分:1)

我不知道你的本地头文件中有什么

-scaleToFitPlots:

取而代之的是我添加了以下代码行

#include "std_lib_facilities.h"

#include<iostream> using namespace std; //做作业  应纠正如下

if(unit ==&#39; e&#39;),//检查是否相等

由于同样的原因,

if (unit = 'e')应纠正如下

else if (unit ='y')

此外,您应该使用编译器选项else if (unit =='y')

进行编译