C++ 将二维数据库保存到文件ISSUE中

C++ Saving 2-dimensional database into file ISSUE

本文关键字:数据库 存到文件 ISSUE 二维 C++      更新时间:2023-10-16

我正在编写一个小的控制台应用程序(命名为student evidention(,它有几个功能,即它允许用户将数据库导出到文本文件中。

在此过程中发生的问题是程序实际上只保存上述数据库的第一条记录。

void saveDataToFile() {             // ZAPISZ BAZĘ DANYCH DO PLIKU - ISTNIEJE PROBLEM Z OKREŚLENIEM ŚCIEŻKI ZAPISU ORAZ ZAPISYWANIEM JEDYNIE PIERWSZEGO REKORDU Z BAZY
string fileName;
ofstream fileTemp;
cout << "Podaj nazwę pliku: "; cin >> fileName;
fileTemp.open(fileName);
fileTemp << "+--------------------------------------------------------------------------------------------------------+" << endl;
fileTemp << "|tImięt|tNazwiskot|tNr PESELt|t Telefont|tMailt |" << endl << "+--------------------------------------------------------------------------------------------------------+" << endl;
for (row; row < 20; row++) {
    for (col; col < 5; col++) {
        if (col == 0) {
            fileTemp << "t" << studentDb[row][col] << "t";
        }
        else {
            fileTemp << studentDb[row][col] << "t";
        }
    }
    fileTemp << endl;
}
fileTemp.close();

}

我不知道该代码有什么问题,因为循环本身似乎完全没问题......

我很高兴提供解决此问题的任何提示。忽略用波兰语写的行 - 它在程序中只有一些修饰的文本格式化功能。

编辑。

我创建新记录的方式:

void createNewRecord() {        // UTWÓRZ NOWY REKORD W BAZIE
string *pNewRecord;
pNewRecord = &studentDb[recordCounter][0];
cout << "Imię: "; cin >> *pNewRecord;
pNewRecord = &studentDb[recordCounter][1];
cout << "Nazwisko: "; cin >> *pNewRecord;
pNewRecord = &studentDb[recordCounter][2];
cout << "Numer PESEL: "; cin >> *pNewRecord;
pNewRecord = &studentDb[recordCounter][3];
cout << "Numer telefonu: "; cin >> *pNewRecord;
pNewRecord = &studentDb[recordCounter][4];
cout << "Adres e-mail: "; cin >> *pNewRecord;
recordCounter++;
cout << endl << "Nowy rekord został pomyślnie dodany do bazy." << endl;
cout << "Czy chcesz kontynuować? (t/n): "; cin >> response;
cout << endl;
if (response == 't' || response == 'T') {
    cout << "Kontynuujesz dodawanie do bazy." << endl << endl;
    createNewRecord();
}
else if (response == 'n' || response == 'N') {
    Sleep(1000);
    system("cls");
    void displayMenuWindow();
}

}

"for"循环的初始值设定项部分中将"row"和"col"变量设置为零。并使它们也成为局部变量(将它们声明为"int row=0"(。