为什么我的代码没有编译?

时间:2017-04-22 08:15:12

标签: c++

我不明白我的代码在这里出了什么问题。我创建了一个名为pause()的函数,其中一切似乎都没问题,但编译器正在捕获错误。 另一个问题是,当我运行代码并选择选项-1时,它会转到选项1,但不会执行任何其他操作,因为有更多代码是为它编写的。请运行下面给出的代码并让我知道。我正在使用代码块。 请求帮助我。谢谢。

#include <iostream>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <cstdlib>
#include <windows.h>
using namespace std;
#define size 550000;

class morsecode{
private:
    string text;
    char msg[10001];

public:

    void choose();
    void convert();
    void translate();
    void exit();

    void pause(int p){
        for(int i=0;i<p;i++){
            for(long int j=0;j<size;j++){

            }
        }
    }

};
void morsecode::choose(){
    system("CLS");
    cout << "1.Convert message\n";
    cout << "2.Translate message\n";
    cout << "3.Exit\n";
    cout << "\nEnter the number you want to choose:";
    int a;
    cin >> a;
    if(a==1){
        convert();
    }
    else if(a==2){
        translate();
    }
    else if(a==3){
        exit();
    }
    else{
        system("CLS");
        cout << "Wrong input\n";
        pause(3);
        choose();
    }
}

void morsecode::convert(){
    system("CLS");
    cout << "Enter the message you want to convert to morse code:\n\n";
    getline(cin,text);
    int len=text.length();
    cout << len;

}

void morsecode::translate(){
;
}
void morsecode::exit(){
;
}



int main(){
    morsecode obj1;
    obj1.choose();



    cout << "\n\n\n\n\n";
return 0;
}

3 个答案:

答案 0 :(得分:4)

您的代码在XCode中编译,但此行除外:

#define size 550000;

更改为:

#define __size 550000

另外,请不要像这样暂停,因为它会浪费资源:

void pause(int p){
        for(int i=0;i<p;i++){
            for(long int j=0;j<size;j++){

            }
        }
    }

而是使用this_thread::sleep_for()或其他类似方法。

答案 1 :(得分:1)

问题在于:

#define size 550000;

不要在定义的末尾添加;。只是做:

#define size 550000

当你有&#34;额外&#34; ;此代码

for(long int j=0;j<size;j++){

变成了

for(long int j=0;j<550000;;j++){
                         ^^

这是非法语法

答案 2 :(得分:0)

您能否运行代码并选择一个选项? 我不知道为什么,但代码的下面部分不起作用。

void morsecode::convert(){

system("CLS");
cout << "Enter the message you want to convert to morse code:\n\n";
getline(cin,text);
int len=text.length();
cout << len;
}