基本的 C++ 文件处理问题

Basic C++ File Handling Problems

我正在制作一个课程管理系统。我计划编写一个代码,从用户那里获取有关大学课程详细信息的输入,并将它们存储在文件中并进行读取。我的电脑首先不读取文件,其次不显示用于在学校输入数据的输入选项,任何人都可以解决这个问题。 谢谢

void admin() {
system("CLS");
title();
char wish;
ofstream fbout;
ifstream fbin;
fbout.open("program.txt", ios::out | ios::app | ios::binary);

program degree;
if (!fbout) {
    cerr << "Error in openning file" << endl;
    }
else{
    while (fbin.read((char*)&degree, sizeof(degree))) {
        int i(1);
        cout << i <<". "<< degree.category <<" " <<degree.name <<" (" <<degree.callName << ")" << "\t" <<degree.school<<endl;
    }
    cout << "Enter new program (Y/N)" << endl;
    cin >> wish;
    if (wish == 'Y') {
        cout << "Program Name : "; cin >> degree.name;
        cout<< flush;
        cout << "School Name : "; cin >> degree.school; cout << endl;
        cout << flush << "Degree Type : "; cin >> degree.category; cout << endl;
        cout << "Acronym : "; cin >> degree.callName;

        fbout.write((char*)&degree, sizeof(degree));
        fbout.close();
        admin();
    }
    else{
    fbout.close();
    admin();}

    }

enter image description here

您从错误的地方复制了一些代码

fbout.open("program.txt", ios::out || ios::app||ios::binary);

应该是

fbout.open("program.txt", ios::out | ios::app | ios::binary);

|| 是逻辑或运算符,而 | 是按位或运算符。花太多时间来解释这里的区别,在你的 C++ 书中查找它们。按位或运算符通常用于将多个 'flags' 组合成一个值。

我发现了错误。 我需要使用代码语句

打开fbin文件
fbin.open("program.txt", ios::in | ios::binary);

但是无法解决学校名称无法输入数据的问题