当前位置:首页 » 编程语言 » c语言如何打开文件创建链表
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言如何打开文件创建链表

发布时间: 2022-05-05 11:22:45

‘壹’ c语言中怎么根据文件建立一个链表

依次是编号
名字
数据是么?你需要先建立一个creat.txt文件,然后对文件进行操作~!
头文件用#include<stdio.h>
#include<stdlib.h>这两个,然后定义个文件指针
FILE
*fp;
用fopen("creat.txt","r")进行写入,写入用fscanf(fp,"%f%s%f",&id,&name,&grade);操作完成关闭文件fclose(fp);这样就行了~!在链表里插入这些东西就可以进行写入了。。具体还是靠自己写,要考试了,具体程序没有时间给你写。。

‘贰’ C语言中怎样建立链表

参考以前写的这个吧,写的不好,你修改吧
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define CD sizeof(struct Biao)
struct Biao
{
int num;
struct Biao *next;
};
int m,x;
int main()
{
struct Biao *jianli();
void paixu(struct Biao *n);
void chashu(struct Biao *n);
void shanshu(struct Biao *n);
void qiupingjun(struct Biao *n);
void tuichu();
int n;
struct Biao *t;
printf("1.建立链表\n2.排序\n3.插数\n4.删数\n5.求平均值\n");
printf("请输入选项:\n");
for(;;)
{
scanf("%d",&n);
switch(n)
{
case 1:t=jianli();break;
case 2:paixu(t);break;
case 3:chashu(t);break;
case 4:shanshu(t);break;
case 5:qiupingjun(t);break;
case 6:tuichu();break;
default:printf("输入错误!请重新输入\n");
}
}
}
struct Biao *jianli()
{
int i,j;
printf("建立链表,请输入数据:\n");
struct Biao *head,*p1,*p2;
p1=p2=(struct Biao * )malloc(CD);//if(p1==NULL)建立链表失败
for(i=0;i<=100;i++)
{
if(i==0)
{
head=p1;
p2->next=p1=(struct Biao * )malloc(CD);
p2=p1;
continue;
}
if(p1==NULL)
break;
else
{
scanf("%d",&p1->num);
if(p1->num==-1)
{
p2->num=NULL;
break;
}
p2->next=p1=(struct Biao * )malloc(CD);
p2=p1;
}
}
if(head->next->num==NULL)
printf("您建立了一个空链表\n");
else
{
printf("共有数据:%d\n",i-1);
m=i-1;
printf("输出链表:\n");
p1=head->next;
for(j=0;j<i-1;j++)
{
printf("%d ",p1->num);
p1=p1->next;
}
}
printf("\n");
return(head);
}
void paixu(struct Biao *n)
{
int i,j,a,temp;
a=m;
struct Biao *p1,*p2,*tp;
p2=p1=n->next;
printf("从小到大排序结果:\n");
for(i=0;i<a-1;i++)
{
p1=p2;
tp=p1;
for(j=i+1;j<a;j++)
{
if((p1->next->num)<(tp->num))
{
tp=p1->next;
}
p1=p1->next;
}
temp=tp->num;tp->num=p2->num;p2->num=temp;
p2=p2->next;
}
p1=n->next;
for(i=0;i<a;i++)
{
printf("%d ",p1->num);
p1=p1->next;
}
printf("\n");
}
void chashu(struct Biao *n)
{
int a,i,j;
struct Biao *p1,*p2,*tp;
m=m+1;
x=m;
a=m;
p1=n;
printf("请插入数字:\n");
p2=(struct Biao *)malloc(CD);
scanf("%d",&p2->num);
p1=n->next;
for(i=0;i<a-1;i++)
{
if(p1->num<=p2->num&&p1->next->num>p2->num)
{
tp=p1->next;
p1->next=p2;
p2->next=tp;
break;
}
if(p1->num<p2->num&&p1->next->num>p2->num)
{
tp=p1->next;
p1->next=p2;
p2->next=tp;
break;
}
if(n->next->num>p2->num)
{
tp=n->next;
n->next=p2;
p2->next=tp;
break;
}
p1=p1->next;
}
p1=n;//
for(i=0;i<a-1;i++)
{
p1=p1->next;
}
if(p1->num<=p2->num)
{
tp=p1->next;
p1->next=p2;
p2->next=tp;
}//算法不简便
printf("插入后的数据:\n");
p1=n->next;
for(i=0;i<a;i++)
{
printf("%d ",p1->num);
p1=p1->next;
}
printf("\n");
printf("数据个数:%d\n",a);
}
void shanshu(struct Biao *n)
{
int a,i,j;
a=x;
struct Biao *p1,*p2;
printf("请输入要删除的数:\n");
scanf("%d",&j);
for(;;)
{
p1=n;
for(i=0;i<a;i++)
{
if(p1->next->num==j)
{
p2=p1->next;
p1->next=p1->next->next;
a-=1;
x-=1;
break;
}
p1=p1->next;
}
if(i==a)
break;
}
printf("结果:\n");
p1=n->next;
for(i=0;i<a;i++)
{
printf("%d ",p1->num);
p1=p1->next;
}
printf("\n");
printf("剩余数据个数:%d\n",x);
}
void qiupingjun(struct Biao *n)
{
int s,i;
struct Biao *p1;
s=0;
p1=n->next;
for(i=0;i<x;i++)
{
s+=p1->num;
p1=p1->next;
}
printf("平均值为:%f\n",s*1.0/x);
}
void tuichu()
{
exit(0);
}

‘叁’ c语言如何从文件读入,并存放在链表中

//很简单,给你个单链表的例子,首先定义链表成员的结构体
struct
filetext{
char
buf[BUFSIZE];
struct
filetext
*next;
};
//读取文件,并插入进链表的函数,filename为要读取的文件名,head为链表的头节点,函数返回插入新节点后链表的头节点
struct
filetext
*
readfile(char
*
filename,struct
filetext
*
head)
{
struct
filetext
*
new
=
(struct
filetext
*)malloc(sizeof(struct
filetext));//定义一个新成员,并给它分配空间
FILE
*
fp;//读取文件的文件流
struct
filetext
*
p
=head;//定义一个p,用来寻找链表中最后一个节点
if((fp=(fopen(filename,"r+")))==NULL)
{
//如果打开文件失败,返回head,并提示
printf("open
file
failure");
return
head;
}
//然后开始读取文件,放到new的buf中
if(fread(new->buf,BUFSIZE,1,fp)<1)
{
//如果读取失败,提示,并返回head
printf("read
file
failure");
return
head;
}
fclose(fp);
//文件读取完后,进行链表操作
if(!head)//如果传进来的head是个空指针,那么新指针就作为头节点返回
{
new->next
=
NULL;
return
new;
}
while(p->next)
p
=
p->next;//把p移动到最后一个节点
p->next
=
new;//p的下一个节点为new
new->next
=
NULL;//new的下一个节点为空
return
head;
}
//这样这个函数就完成了,你可以写个主函数,定义一个头节点,试下

‘肆’ c语言中怎么把打开的文本存入链表中啊

把你链表中的结构体保存到文本,下次打开以后一次读文本的内容到结构体中,然后把这些结构体加入链表就可以了。如果文本是事先给你的,你可以先了解文件中数据的属性,比如一个结构体中有哪些类型,然后按这些类型创建结构体,然后加入链表即可

‘伍’ 用c语言创建链表

void CreateList_H(Linklist L,int n)中的L是局部变量,你生成的头结点L不能被返回,应该改为:
Linklist CreateList_H(int n)
调用方式和函数内部返回值都需要相应改动。

‘陆’ C语言从文件中读出数据构造成链表

文件i/o通过fgets来读入整行(也就是一个struct的数据)
然后借助sscanf或者strtok来分离数据并分别存入结构体
链表本身操作不困难吧,先有一个链表头,然后通过malloc创建新的项
如果是一次性连续读入数据(比如数据库的初始化),用一个while循环来控制就好

‘柒’ C语言如何创建单链表

C语言创建单链表如下:

#include"stdio.h"

#include"stdlib.h"

#include"malloc.h"

#include "iostream.h"

typedef struct node

{

intdata;

node * next;

}node , * List;

void create(int n)

{

int c;

List s,L;

L=(List)malloc(sizeof(node));

L->next=NULL;

printf("请输入第1个数据:");

scanf("%d",&c);

L->data=c;

for(int i=2;i<=n;i++)

{

s=(List)malloc(sizeof(node));

printf("请输入第%d个数据:",i);

scanf("%d",&c);

s->data=c;

s->next=L;

L->next =s;

}

printf("链表创建成功!");

}

void main()

{

int n;

printf("请你输入链表的个数:");

scanf("%d",&n);

create(n);

}

‘捌’ c语言创建链表

1、你使用了malloc函数但没有导入头文件malloc.h。
2、函数DATA *create(int n);没有申明就直接调用。
(另外main函数中DATA* head;给个初值NULL,避免野指针。)
修改以上内容,亲测可运行。

‘玖’ 编写C语言程序实现从txt文件中读取数据创建单链表

#include
<stdio.h>
#include
<stdlib.h>
typedef
int
DataType;
typedef
struct
node
{
DataType
data;
struct
node
*next;
}
LNode,*LinkList;
void
CreateList(LinkList
&L,char
*filename){
//创建带头结点的单链表
FILE
*fp;
if((fp=fopen(filename,"r"))==NULL){
printf("文件没找到!\n");return;}
L=(LinkList)malloc(sizeof(LNode));//创建头结点
LinkList
p=L;
while(!feof(fp)){
LinkList
q=(LinkList)malloc(sizeof(LNode));
DataType
e;
fscanf(fp,"%d",&e);//使用格式化读取文件中的数据
q->data=e;p->next=q;p=q;
}
p->next=NULL;
fclose(fp);
}
int
main(){
LinkList
L;
CreateList(L,"1.txt");
LinkList
p=L->next;
while(p){//输出单链表的数据
printf("%d\t",p->data);p=p->next;
}
printf("\n");
return
0;
}
//在vc++6.0下运行,源文件扩展名应为:.cpp,若为.c要修改函数参数

‘拾’ 怎样创建一个线性链表(C语言)

/*线性链表的构建*/
#include<stdio.h>
#include<stdlib.h>

typedefstructLnode
{
intdata;
structLnode*next;
}Lnode;

intmain()
{
Lnode*H,*p1,*p2,*p3,*p4;
H=(Lnode*)malloc(sizeof(Lnode));
p1=(Lnode*)malloc(sizeof(Lnode));
p2=(Lnode*)malloc(sizeof(Lnode));
p3=(Lnode*)malloc(sizeof(Lnode));
p4=(Lnode*)malloc(sizeof(Lnode));

p1->data=132;
p1->next=p2;
p2->data=942;
p2->next=p3;
p3->data=158;
p3->next=182;
p4->data=231;
p4->next=NULL;

printf("%d,%d ",p1->data,p3->data);
printf("%d",p1->next->data);

return0;
}