C++问题
如何用链表从一个txt文件中读取信息,然后对信息进行操作,最好可以给出代码,谢谢。。
#include<fstream.h>
#include<string.h>
#define N 100
typedef struct block{//文件以链表形式放入内存
char a[N];
struct block *next;
}block;
void destroy(block *head){//链表的销毁,释放内存
block *p;
while(head!=NULL){
p=head;
head=head->next;
delete p;
}
}
void main(){
char *pc;
block *head=new block;
head->next=NULL;//初始化链表
block *p=head;
ifstream txt("input.txt",ios::in);
while(1){//文件内容转入链表
txt.getline(p->a,N);
if(txt.eof()||p->a[0]=='\0')break;//文件结束或在文件中遇到空行则停止循环
p->next=new block;//分配一个新链表结点
p=p->next;
p->next=NULL;
}
txt.close();//关闭文件
p=head;
while(p!=NULL){//输出链表内容到屏幕
cout<<p->a<<endl;
p=p->next;
}
p=head;
while(p!=NULL){//查找替换,遇到789就删除,遇到this就替换
for(pc=p->a;*pc!='\0';pc++){//查找该行有无需要替换的字符串
if(strncmp(pc,"789",3)==0)strcpy(pc,pc+3);//查找是否有789开头的串,有则删除789
if(strncmp(pc,"this",4)==0){//查找是否有this开头的串,有则替换为that
pc[2]='a';
pc[3]='t';
}
}
p=p->next;
}
p=head;
while(p!=NULL){//输出新链表内容到屏幕
cout<<p->a<<endl;
p=p->next;
}
p=head;
ofstream txt2("input.txt",ios::trunc);
while(p!=NULL){//输出新链表内容到文件
txt2<<p->a<<endl;
p=p->next;
}
destroy(head);//销毁链表,释放内存
}