基本的 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*)°ree, 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*)°ree, 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);
但是无法解决学校名称无法输入数据的问题
我正在制作一个课程管理系统。我计划编写一个代码,从用户那里获取有关大学课程详细信息的输入,并将它们存储在文件中并进行读取。我的电脑首先不读取文件,其次不显示用于在学校输入数据的输入选项,任何人都可以解决这个问题。 谢谢
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*)°ree, 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*)°ree, 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);
但是无法解决学校名称无法输入数据的问题