【问题标题】:C++ syntax error: Getting several errors expecting ';'C++ 语法错误:出现几个错误,期望 ';'
【发布时间】:2013-10-07 02:53:16
【问题描述】:

这是我关于 SO 的第一篇文章/问题。我正在关注 Bjarne Stroustrup 的书“编程:使用 C++ 的原理和实践”,我正在尝试做“切换”语句。我收到了几个语法错误,例如:

  • 错误 C2146:语法错误:缺少 ';'在标识符“值”之前,

  • 错误 C2143:语法错误:缺少 ';'在“字符串”之前,警告

  • C4552: '*' : 运算符无效;具有副作用的预期运算符,

此外,每次我想在语句中使用变量“值”时,我都会得到:

  • IntelliSense:应为“;”

错误。

我正在使用 Visual Studio 2013 RC,但我不知道为什么我不能运行这个程序。一周前我在 OSX 上运行了一个非常相似的版本,通过终端编译它,它运行良好。 IDE是这里的问题,还是我的代码?我确信这只是一个菜鸟错误,但我只是没有看到问题所在。我已经多次浏览了代码。我希望你能帮我指出我的菜鸟错误!..

感谢大家的任何意见,我真诚地感谢它!

这是我的代码:

#include "../std_lib_facilities.h"

int main()
{

int value = 1;
double euros = 11.2;
double yen = 989;
double pounds = 14.2;
char unit = ' ';

cout << "Welcome to this DOLLARS-TO-OTHER-CURRENCIES Program.'\n'";
cout << "Please enter a unit, then followed by a value: '\n'";
cout << "(e)uros, (y)en or (p)ounds.'\n'";

cin >> value >> unit;

switch (unit)
{
case 'e':
    cout << value << " dollars in Euros is: " value * euros ".'\n'";
        break;

case 'y':
    cout << value << " dollars in Yen is: " value * yen ".'\n'";
        break;

case 'p':
    cout << value << " dollars in British Pounds is: " value * pounds".'\n'";
        break;

default:
    cout << "COMPUTER ERROR. DOES NOT COMPUTE.'\n'";
    break;
}
}

【问题讨论】:

    标签: c++ visual-c++


    【解决方案1】:

    在顶部添加这些行:

    #include <iostream>
    using namespace std;
    

    您正在使用cin 和cout,但您没有包含定义这些名称的标头。

    cout << value << " dollars in Euros is: " value * euros ".'\n'";
    

    你想要

    cout << value << " dollars in Euros is: " << value * euros << ".\n";
    

    【讨论】:

    • 感谢您的回答。但是,我相信我正在使用定义这些名称的自定义头文件 (std_lib_facilities.h)。另外,包括那些在顶部没有解决任何问题的人。
    • 你解决了我回答第二部分中发现的问题吗?
    • 是的,效果很好!我只是忘记了
    • 如果你想要换行符,你应该使用std::endl 而不是\n。试试:cout &lt;&lt; value &lt;&lt; " dollars in Euros is: " &lt;&lt; value * euros &lt;&lt; endl;
    • 感谢您的提示;它确实看起来更整洁。我将使用这个变体而不是\n。
    【解决方案2】:
    cout << value << " dollars in Euros is: " value * euros ".'\n'";
    

    您不能像这样将value * euros 放在两个字符串之间。将其更改为:

    cout << value << " dollars in Euros is: " << value * euros << ".'\n'";
    

    其他情况也一样。

    【讨论】:

      猜你喜欢
      • 2014-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-07
      • 2018-06-23
      • 2015-05-26
      • 2012-05-11
      • 1970-01-01
      相关资源
      最近更新 更多