fstream file;
ofstream outfile;
char temp[100];
int choice,i;
cout << "1.修改姓名 " << "2.修改性別 " << "3.出生日期 " << "4.修改身高 " << "5.修改體重 " << "6.修改密碼 " << "7.回傳選單";
cin >> choice;
switch(choice) {
case 1 :
char newname[10];
file.open(name);
if (!file) {
cerr << "open error!" ;
exit(1);
} else {
outfile.open("temp.dat",ios::out);
if (!outfile) {
cerr << "open error!" ;
exit(1);
} else {
for (i = 0;i < 2;i++) {
file.getline(temp,100);
outfile << temp << endl;
}
cout << "請輸入姓名:" ;
cin >> newname;
outfile << "姓名:" << newname << endl;
file.getline(temp,100);
while (!file.eof()) {
file.getline(temp,100);
outfile << temp << endl;
}
file.close();
outfile.close();
remove(name);
if (!rename("temp.dat",newname)) {
cout <<"修改成功!" << endl;
system("pause");
system("cls");
menu();
} else {
cout << "修改失敗!";
}
}
}
break;
case 2 :
file.open(name);
if (!file) {
cerr << "open error!" ;
exit(1);
} else {
outfile.open("temp.dat",ios::out);
if (!outfile) {
cerr << "open error!" ;
exit(1);
} else {
for (i = 0;i < 3;i++) {
file.getline(temp,100);
outfile << temp << endl;
}
cout << "請輸入性別:" ;
cin >> sex;
outfile << "性別:" << sex << endl;
file.getline(temp,100);
while (!file.eof()) {
file.getline(temp,100);
outfile << temp << endl;
}
file.close();
outfile.close();
remove(name);
if (!rename("temp.dat",name)) {
cout <<"修改成功!" << endl;
system("pause");
system("cls");
menu();
} else {
cout << "修改失敗!";
cout << errno;
}
}
}
break;
以上兩個case是代碼的一部分,case1的remove和rename可以運行,case2的會失敗,errno值是17.
之前也發生過,后來發現是忘了關閉流了,結果這次又來了……里面的name是事先輸入的名字,檔案也是以名字命名的,和程式在同目錄下。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/58074.html
標籤:基礎類
上一篇:加入<wintrust.h>出錯
下一篇:c++ 鏈接錯誤 error LNK2001: unresolved external symbol "public:
