c++ 从文件中读取内容,插入到链表当中perfect

按照链表节点输出。

如有错误敬请提出!

注释部分不用管!!

#include<bits/stdc++.h>
using namespace std;
typedef struct p{
	char name[20];
	int age;
	char sdept[10];
	struct p *next;
}par;
par *head;
void open1(){
	par *p1,*p2;
	head=new par;
	p1=head;
	ifstream fp("practise.txt",ios::in|ios::binary);
	p2=new par;
	//memset(p2,0,sizeof(par));
	while(!fp.eof()){
		//fp.read((char *)p2,sizeof(par));
		fp>>p2->name>>p2->age>>p2->sdept;
		p1->next=p2;
		p1=p2;
		p2=new par;
	}
	p1->next=NULL;
	fp.close();
}
//输出
void shuchu(){
	par *p;
	p=head->next;
	while(p!=NULL){
		cout<<p->name<<" "<<p->age<<" "<<endl;
		p=p->next;
	}
}
删除
void shanchu(){
	par *q,*p;
	p=head;
	q=head->next;
	char s[20];
	cout<<"输入删除的名字:";
	cin>>s; 
	while(q!=NULL){
		if(strcmp(s,q->name)==0){
			p->next=q->next;
			free(q);
			break;
		}else{
			p=q;
			q=q->next;
		} 
	}
} 
//查找
void chazhao(){
	char s[10];
	cout<<"输入名字:";
	cin>>s;
	par *q;
	q=head->next;
	while(q!=NULL){
		//TODO
		if(strcmp(s,q->name)==0){
			cout<<q->name<<" "<<q->age<<" "<<q->sparept<<endl;
			break; 
		}else{
			q=q->next;
		}
	}
}
int main(){
	open1();
	shuchu(); 
}

文件中读取还可以使用下面语句(可以与上述代码open1()函数替换)

void open1(){
	par *p1,*p2;
	FILE *fp;
	char q1[20],q2[20];
	int q4;
	head=new par;
	p1=head;
	fp=fopen("practise.txt","r");
	p2=new par;
	//memset(p2,0,sizeof(par));
	while(fscanf(fp,"%s %d %s",q2,&q4,q1)!=EOF){
		//fp.read((char *)p2,sizeof(par));
		strcpy(p2->name,q2);
		strcpy(p2->sparept,q1);
		p2->age=q4;
		p1->next=p2;
		p1=p2;
		p2=new par;
	}
	p1->next=NULL;
}

 

文件截图:

《c++ 从文件中读取内容,插入到链表当中perfect》

输出结果:

《c++ 从文件中读取内容,插入到链表当中perfect》

    原文作者:纯愚
    原文地址: https://blog.csdn.net/m0_54028344/article/details/124655299
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞