gpt4 book ai didi

c++ - 双向链表未读取整个 txt 文件

转载 作者:行者123 更新时间:2023-11-28 04:09:51 26 4
gpt4 key购买 nike

<分区>

我一直在通过双向链接列表读取 txt 文件时遇到问题,其中只读取最后一行而不是整个文件。下面是我的 txt 文件和 cpp 文件。

这是我的 .txt 文件:

ID    marks
S11111111 20
S22222222 65
S33333333 99
S44444444 15
S55555555 70
S66666666 10
S77777777 75

我的代码:

#include <iostream>
#include <stdlib.h>
#include <string>
#include <fstream>
using namespace std;
class student {
private: string id;
int mark;
public: void setid(string nid) {
id=nid;
}
string getid() {
return id;
}
void setmark(int nmark) {
mark=nmark;
}
int getmark() {
return mark;
}
}

;
class node {
private: student data;
node *next;
node *prev;
node *head;
node *tail;
public: node() {
head=NULL;
tail=NULL;
}
~node() {
cout<<"sample not clear decontructor"<<endl;
}
void readfile();
void appendnode(node *pnode);
void print();
}

;
void node::appendnode(node *pnode) {
if (head==NULL) {
head=pnode;
pnode->prev=NULL;
}
else {
tail->next=pnode;
pnode->prev=tail;
}
tail=pnode;
pnode->next=NULL;
}

void discard_line(ifstream &in);
void node::readfile() {
node *pnode;
ifstream file;
string id=" ";
int mark=0;
file.open("students.txt");
discard_line(file);
while(file>>id>>mark) {
pnode=new node;
pnode->data.setid(id);
pnode->data.setmark(mark);
appendnode(pnode);
}
}

void node::print() {
node *pnode;
for (pnode==head;
pnode !=NULL;
pnode=pnode->next) cout << pnode->data.getid()<<" "<<pnode->data.getmark() <<endl;
}

int main() {
node cs;
cs.readfile();
cs.print();
}

void discard_line(ifstream &in) {
char c;
do in.get(c);
while (c!='\n');
}

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com