Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++如何在菜单中输入字符串后从菜单中选择选项? 我是C++新手,我正在开发一个程序,学生们在他们的主题代码中键入,然后有一个菜单可以从中选择。_C++_String_Selection_Iostream_Submenu - Fatal编程技术网

C++如何在菜单中输入字符串后从菜单中选择选项? 我是C++新手,我正在开发一个程序,学生们在他们的主题代码中键入,然后有一个菜单可以从中选择。

C++如何在菜单中输入字符串后从菜单中选择选项? 我是C++新手,我正在开发一个程序,学生们在他们的主题代码中键入,然后有一个菜单可以从中选择。,c++,string,selection,iostream,submenu,C++,String,Selection,Iostream,Submenu,问题是,键入并输入主题代码后,菜单及其选项将出现,但您退出系统,而不是选择继续 这是我想让它们工作的部件的代码 void ProcessStudent(char option, char subjCode) { fstream binFile; const char *fileName; cout << "Welcome to Priya's UOW Student File Processing\n" << endl; cout <

问题是,键入并输入主题代码后,菜单及其选项将出现,但您退出系统,而不是选择继续

这是我想让它们工作的部件的代码

    void ProcessStudent(char option, char subjCode)
    {
        fstream binFile;
const char *fileName;

cout << "Welcome to Priya's UOW Student File Processing\n" << endl;
cout << "Enter the module: ";
cin >> subjCode;

cout << "\n1. Creation of binary file\n";
cout << "2. Append a record\n";
cout << "3. Update a record\n";
cout << "4. Delete a record\n";
cout << "5. Produce final file (text file)\n";
cout << "9. Quit\n";

cout << "Your option: ";
cin >> option;

cout << "\n" <<setw(60)<<setfill('-')<<'-'<<endl;

switch(option)
{
    case '1':
        CreateBinary(binFile,subjCode,fileName);
    break;

    case '2':
        AppendRec(binFile,option,fileName);
    break;

    case '3':
        UpdateRec(binFile,option,fileName);
    break;

    case '4':
        DeleteRec(binFile,option,fileName);
    break;

    case '5':
        FinalFile(binFile,option,fileName);
    break;

    case '9':
        MainMenu(option);
}
    }

    void CreateBinary(fstream& binFile, char subjCode, const char *fileName)
    {
    //    Student s;

srand(time(NULL));

        binFile.open(fileName, ios::out | ios::binary);

    //    binFile >> s.id;
    //    binFile.getline(s.name,MAX);

if(!binFile)
{
    cout << fileName << " opened for creation failed" << endl;
    exit(-1);
}

cout << "Begin creation of " << fileName << endl;

fstream txtFile;
txtFile.open(fileName, ios::in);

if(!txtFile)
{
    cout << fileName << " opened for reading failed" << endl;
    exit(-1);
}

cout << "Text file " << fileName << "opened for reading" << endl;



binFile.close();
txtFile.close();

cout << "Binary file " << fileName << " created" << endl;
cout << "Text file " << fileName << " closed for reading" << endl;
}
我想问的是,在输入主题代码或任何其他字符串后,如何选择选项?代码中有什么遗漏吗

希望你们能理解我的要求,如果不让我知道的话

感谢您提供的任何帮助。非常感谢:。

您需要刷新cout流:

后来

 cout << "Your option: "  << flush;

最后用cout替换换行符的输出哪个编译器,你是如何编译的,哪个操作系统?并显示更多代码,并解释如何调试它。我使用Quincy进行编译。遗憾的是,由于声誉问题,我无法对该节目进行屏幕截图。对不起。不是一个编译器,只是一个IDE。它显然正在使用和gdb;您可以在命令行上进行编译,并且应该执行几次。刷新cout流是什么意思?GIYF:请参阅std::ostream和操纵器中的成员函数。
 cout << "Your option: "  << flush;