各位大佬,麻烦看看这题怎么做?
C++期末成绩存放在文本文件 “Score.txt”中,要求编写程序读取该文本文件创建链表,并在链表上根据学号查找姓名和成绩。
文本文件的各列之间使用空格分隔,文件行数不确定。
**要求使用ifstream类和ofstream类的对象读取和写入数据**。
链表的一个结点可声明如下:
struct student
{
unsigned long id;
string name;
float score;
student *next; //下一个结点的指针
}
循环从键盘读入学号,查询对应的姓名和成绩,输入学号为0时退出循环。
// Q1077615.cpp : Defines the entry point for the console application.
//
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
struct student
{
unsigned long id;
string name;
float score;
student *next; //下一个结点的指针
};
int main()
{
student head = {-1,"",0};
head.next = NULL;
student * p = &head;
ifstream in("Score.txt");
while (true)
{
unsigned long id;
char name[100];
float score;
string line;
if (!getline(in, line, '\n')) break;
stringstream ss(line);
p->next = new student;
p = p->next;
p->next = NULL;
ss >> id;
ss >> name;
ss >> score;
}
int n;
while (true)
{
cin >> n;
if (n == 0) break;
p = head.next;
while (p)
{
if (p->id == n)
{
cout << p->name << " " << p->score << endl;
break;
}
p = p->next;
}
if (!p || p->id != n)
cout << "no record!" << endl;
}
return 0;
}
210871,张三,95
210872,lisi,92.5
210873,jim zhao,97
210874,han meimei,100
210875,孙行者,80
210876,tony,80
210877,铁柱,94.5
210878,小明,98
完整代码下载
https://download.csdn.net/download/caozhy/12453617
这里没有用到fstream类啊?