我不明白我的代码在这里出了什么问题。我创建了一个名为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;
}
答案 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;
}