0

我不断收到错误消息:发现意外的文件结尾,我完全迷路了。我检查了咖喱大括号和括号,我在课程的末尾放了一个分号,我无法弄清楚它有什么问题。多谢。

#include<iostream>
#include<fstream>
#include<string>
using namespace std;



class operations{
    void checkout(){
        cout << "Check out here!!";
    }
}
void main(){
    string item;
    int choice;

    cout << "What do you want to do? " << endl;
    cout << "Press 1 for checking out " << endl;
    cout << "Press 2 for stocking " << endl;
    cout << "Press 3 looking at recipts " << endl;
    cin >> choice;
    cout << choice;

    if(choice == 1){
        void checkout();
    }
    /*ofstream myfile;
    myfile.open("inventory.txt");

    if(myfile.is_open()){
        cout << "Enter a grocery item" << endl;
        getline(cin,item);
        myfile << item;
    }
    cout << "Your grocery item is " << item;
    myfile.close();
    system("pause");*/
};
4

3 回答 3

2
  1. 您的类定义需要一个尾随分号,而不是您的主要功能。

    class operations{
        void checkout(){
            cout << "Check out here!!";
        }
    };
    
  2. “空主”是错误的。 main总是返回int

于 2012-11-01T01:10:32.410 回答
0

这是您的代码,在我解释您想要执行的操作时进行了更正。

#include<iostream>
#include<fstream>
#include<string>

using namespace std;

class operations
{
    public:void checkout()
    {
        cout << "Check out here!!";
    }
};

int main()
{
    string item;
    int choice;
    operations op;

    cout << "What do you want to do? " << endl;
    cout << "Press 1 for checking out " << endl;
    cout << "Press 2 for stocking " << endl;
    cout << "Press 3 looking at recipts " << endl;
    cin >> choice;
    cout << choice;

    if(choice == 1)
    {
        op.checkout();
    }

    return 0;
}

首先,注意类声明后需要分号,方法声明后不需要

其次,请注意,void checkout()在您的代码中不会调用您在类中定义的方法,而是会声明一个新方法,该方法将不执行任何操作。要调用正确的void checkout(),你必须实例化一个类型的对象,operations然后调用它的方法op.checkout()

最后,如果执行流程正确到达程序末尾,请务必声明int main()并放置。return 0

作为旁注,我可能不会在您的程序中使用类,而只是在实现之前main()实现与用户选择相对应的方法

void checkout()
{
    cout << "Check out here!!";
}

这样您就可以简单地调用它们

checkout()
于 2012-11-01T01:58:33.163 回答
-2

我认为您应该将其添加到文件的顶部(将其作为第一行):

#include "stdafx.h"
于 2012-11-01T01:12:40.077 回答