-2

私は学生コース登録システムのプロジェクトに取り組んでいます。テキスト ファイルからデータを読み取って、新しい生徒が追加されるたびに更新する必要がある単一リンク リストに格納するのに問題があります。データはフォーマットされた方法で保存されます。問題は、構造体に型char変数があるため、割り当てエラーとして表示されることです。

構造体は次のように定義されます。

struct Student {
  char stdID[10];
  char stdName[30];
  char stdSemester[5];
  Student  *next; } *Head, *Tail;

構造体を保存するコードは次のとおりです。

// For Saving: 
            SFile << std->stdID << '\t' << std->stdName << '\t' << std->stdSemester << '\n';

テキスト ファイルを読み取って構造体を表示するコードは次のとおりです。

// Display:
system("cls");
cout << "\n\n\n";
cout << "\t\t\t\t           LIST OF COURSES" << endl;
cout << "\t\t\t   ====================================================\n" << endl;
cout << "\t" << "ID" << "\t" << setw(15) << "Course Name" << "\n\n";

// Initialize:
char ID[10];
char Name[30];
char Sem[5]; 
ifstream SFile("StudentRecord.txt");
Student *Temp = NULL;

while(!SFile.eof()) {

    // Get:
    SFile.getline(ID, 10, '\t');
    SFile.getline(Name, 30, '\t');
    SFile.getline(Sem, 5, '\t');

    Student *Std = new Student;   //<======== OUCH! Assignment error here
    //node*c=new node;

    // Assign:
    Std->stdID = *ID;

    if (Head == NULL) {
        Head = Std;
    } 
    else {
        Temp = Head;
        {
            while ( Temp->next !=NULL ) {
                Temp=Temp->next;
            }
            Temp->next = Std;
        }
    }
}
SFile.close();
system("pause"); }

PS: コメントの割り当てに問題があります。

データ型を変更して、プロジェクト全体を で作成する必要がありstringますか? char出力をフォーマットできたので好みでしstringた。行ごとに読み取ることができると確信しているため、単一行から値を保存することはできません。

4

1 に答える 1