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语言》中如何从文件读取矩阵?
确定文件名。打开文件,使用fopen函数。fopen("文件名", “r”)。根据约定的文件格式,包括文件中矩阵规模,元素的类型,以及元素分隔的符号,采用fscanf函数循环读入矩阵。判断文件是否读完,如未读完,重复第三步直到读完。关闭文件。C语言的优点:简洁紧凑、灵活方便,C语言一共只有32个关键字,9种控制...

C语言如何从文件读入数组
主要语句如下:FILE *fin;int arr1[3],arr2[3];int i=3;if ( (fin = fopen("a.in","r") ) == NULL ) { printf("\\007Cann't open input file a.in ");exit(0);};for (i=0;i<3;i++)fscanf(fin,"%d %d", &arr1[i], &arr2[i]);fclose(fin);

用C语言编写读入并读取一个文件,按照下面的要求编写程序
include<stdio.h> include<stdlib.h> int main(){ FILE *fp,*ok;char str1[80],str2[80];if((fp=fopen("d:\\\\file.txt","r+"))==NULL)\/\/打开d盘下名为file的文本文件;{ puts("file文件打开失败!");exit(0);} else puts("file文件打开成功");if((ok=fopen("d:\\\\file1.txt"...

c语言 怎么从文件中读入数据存储到二维数组中
示例数据文件(c:\\data.txt):1 2 3 4 5 11 22 33 44 55 6 111 222 333 444 555 666 7 程序:\/\/--- include <stdio.h> include <stdlib.h> define FILE_DATA "C:\\\\DATA.TXT"\/*数据文件名*\/ define DFM "%d" \/*DFM为文件中所含数据的格式控制符*\/ define PDFM DFM##"\\...

用c语言如何读入并使文本文件按某一列排序输出?
使用文件操作函数打开文件,读取信息,进行排序,重新写入并覆盖原文件。例程:include <stdio.h>#include <stdlib.h>int comp(const void* a,const void* b){ return *(int*)a-*(int*)b; }int main(){ FILE *p;\/\/文件指针 int i,j,a[1000]; p = fopen("文件名称", ...

C语言怎么从TXT文件中读入数据?
include <stdio.h> int main(){ FILE *fp=NULL;int a[160];int i=0;fp=fopen("data.txt","r");if ( !fp ){ printf("open file error\\n");return -1;} while( !feof(fp) ){ if ( fscanf( fp , "%d" ,&a[i] ) !=1 )break ;i++;fgetc(fp) ;\/\/过滤掉分隔符 } f...

怎么用C语言从某个硬盘上读入文件
1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。2、例程:include...

如何使用C语言从TXT文件中读取如下格式的数据并存储与数组中?_百度知 ...
1.fopen函数打开需要读取的文本,获取该文件的文件描述符 2.使用fscan()函数对文件进行读取。3.放到二维数组其实就是读取相应格式的数据,然后对应二维数组的每个位置 例如 include "stdio.h"#define M 300#define N 50void main(){ int i,j; float a[M][N]={0}; FILE *fp; if((fp=...

C语言中如何读取文件中的汉字并将其存入数组中?
} while((ch=fgetc(fp))!=EOF) if(ch<0) s[i++]=ch; fclose(fp); s[i]='\\0'; printf("%s\\n",s);\/\/打出来看看 return 0;}注:原文件内容是“fjkslauti我rophk134是2315学jkal 习C语言jks新da;jus手jfkdsla”输出是“我是学习语言新手”...

C语言怎么做到从文件中读取一行数据,然后改变这一行内容
1、用fgets函数可以读取文件中某行的数据,某列数据就必须一个一个读入每行的第几个字符,再存入到一个字符串当中。2、例程:include<stdio.h>#include<string.h>void main(){ char a[100],b[100],c[100]; int i=3,j=4,k=0; \/\/第三行,第四列 FILE *fp = fopen("data.tx...

昌宁县13014867083: c语言如何从文件读入并放入链表结构中 -
休通甲紫: 是把文件指针地址赋给链表里的指针成员

昌宁县13014867083: C语言中如何将文件中的数据读取到链表中 -
休通甲紫: struct Bookinfo { char num[20]; //书号 char name[10]; //书名 int jinjia; //进价 int shoujia; //售价 int shuliang; //库存数量 int shouchu; //售出 }; typedef struct Node_book* pNode_book; struct Node_book { struct Bookinfo bookinfo; pNode_...

昌宁县13014867083: c语言如何将文件中的数据读出来并存到链表中 -
休通甲紫: 文件I/O通过fgets来读入整行(也就是一个struct的数据) 然后借助sscanf或者strtok来分离数据并分别存入结构体 链表本身操作不困难吧,先有一个链表头,然后通过malloc创建新的项 如果是一次性连续读入数据(比如数据库的初始化),用一个while循环来控制就好

昌宁县13014867083: c语言如何从文件读入,并存放在链表中 -
休通甲紫: //很简单,给你个单链表的例子,首先定义链表成员的结构体 struct filetext{ char buf[BUFSIZE]; struct filetext *next; }; //读取文件,并插入进链表的函数,filename为要读取的文件名,head为链表的头节点,函数返回插入新节点后链表的头节点 ...

昌宁县13014867083: 关于c语言把文件读入链表 -
休通甲紫: 把文件读入程序与程序读入链表当两回事来做, **首先先定义一个节点形式 struct node {char [20] date; char [20] time; char [20] place; char [20] person; char[20] event; struct node* next; };**1.把文件输入程序 //先定义一个struct 结构体临时存储文...

昌宁县13014867083: C语言怎么把文件的内容读到链表里面 -
休通甲紫: 首先设计文件格式:节点数+节点1内容+节点2内容+...写入文件bool WriteToFile(FILE*fp, struct book *head):先写入节点数,从链表头依次至链表尾,将每一个节点的数据(除next指针外)写入文件;从文件读struct book *ReadFromFile(FILE*fp):先读入节点数,动态创建一个链表,节点数为读入节点数,接着依次读入文件中内容并赋值给相应的节点

昌宁县13014867083: C语言,把文件内容读到链表 -
休通甲紫: (1)你没给出struct SuoJu结构的定义,不知道SuoJu的成员danci应该是字符数组还是指针?(2)danci如果是指针, 需要用malloc分配内存 current->danci=(char*)malloc((nchar+1)*sizeof(char)); /*nchar 为字符个数*/(3) fread(¤t,sizeof(char),...

昌宁县13014867083: c语言如何将文件的数据读入一个链表中 -
休通甲紫: #include<stdio.h>#include<stdlib.h> struct date { char str[3]; struct date *next; };//链表长度为len struct date *create_link(int len) { struct date *head; struct date *tmp; int i; head = malloc(sizeof(struct date)); tmp = head; for(i = 1; i < len; ++i) { head ->...

昌宁县13014867083: C语言怎么从文件中将信息导入链表中
休通甲紫: 这个实现起来挺简单的,就是写起来麻烦点,不是一点代码能写完的! 1,建立一个链表,链表的节点struct定义为联系人信息的格式; 2,读取文件,把内容存入链表; 3,查询就根据姓名关键字遍历链表就行了; 4,把内容存入文件; 首先建...

昌宁县13014867083: c语言中怎样将文件中的东西读取到链表中? 给个例子,谢谢了! -
休通甲紫: N的值为学生的个数,也可以自己在里面输入 在typedef struct student加入自己想要加的信息 #include<stdio.h> #include<stdlib.h> #define N 10 typedef struct student { int num; char name[20]; struct student* next; }stu; void creat(stu* h,int data) { stu* ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网