c语言写入链,将文件读入链表c语言

本文目录一览:

C语言链表写入文件

你的程序有什么问题,关P1指针什么事?

你的save不能写入文件吗?

你的程序在哪里释放P1指针了?

C语言 怎么把结构体数组写入链表?

1.用头插法。因为数据追加和删除比较多,追加的话,头插法可以直接插,用尾插降低了时间效率,删除用两个一样。

2./*结构体定义*/

struct client{

char account[14];

char name[10];

char identity[20];

char address[15];

long int money;

};

/*链表结点定义*/

struct node{

struct client band_inf;

struct node *next;

};

应该把结构体结点定义成链表的成员,这样链表才对。如果像你那样定义的话,完全不用定义结构体,链表就搞定了。因为你在链表里面把结构的成员都又定义了。

3.

1),定义结点:p1=(struct node*)malloc(sizeof(struct node)) ;表示定义一个node型的结点指针

使用,这个要看具体怎么用了。比如说删除searchp,priorp是searchp的前面一个结点,这样写

priorp-next=searchp-next;

delete searchp; 即可

插入newnode在searchp的后面,可以这样:

newnode-next=searchp-next;

关于C语言文件数据写入链表的问题

#include stdio.h

#include stdlib.h

#define TRUE 1

#define FALSE 0

typedef struct Node

{

int num;

int score;

struct Node* next;

}Node, *Linklist;

void InitLinklist(Linklist* L) //初始化单链表,建立空的带头结点的链表

{

*L = (Node*)malloc(sizeof(Node));

(*L)-next = NULL;

}

void CreateLinklist(Linklist L) //尾插法建立单链表

{

Node *r, *s;

r = L;

int iNum, iScore;

printf(“Please input the number and score:\n”);

scanf(“%d”,iNum);

scanf(“%d”,iScore);

while(0 != iScore) //当成绩为负时,结束输入

{

s = (Node*)malloc(sizeof(Node));

s-num = iNum;

s-score = iScore;

r-next = s;

r =s;

printf(“Please input the number and score:\n”);

scanf(“%d”,iNum);

scanf(“%d”,iScore);

}

r-next = NULL; //将最后一个节点的指针域置为空

}

int WriteLinklistToFile(const char* strFile, Linklist L)

{

FILE *fpFile;

Node *head = L-next;

if(NULL == (fpFile = fopen(strFile,”w”))) //以写的方式打开

{

printf(“Open file failed\n”);

return FALSE;

}

while(NULL != head)

{

fprintf(fpFile,”%d\t%d\n”,head-num,head-score);

head = head-next;

}

if(NULL != fpFile)

fclose(fpFile);

return TRUE;

};

int ReadFromFile(const char* strFile)

{

FILE *fpFile;

if(NULL == (fpFile = fopen(strFile,”r”))) //以读的方式打开

{

printf(“Open file failed\n”);

return FALSE;

}

printf(“The contents of File are:\n”);

while(!feof(fpFile))

putchar(fgetc(fpFile));//证明fprintf()输出到文件中的绝对是字符串

if(NULL != fpFile)

fclose(fpFile);

return TRUE;

}

void Destroy(Linklist L)

{

Node *head =L;

while (head)

{

Node* temp = head;

head = head-next;

free(temp);

}

}

int main()

{

char* strName = “test.txt”;

Linklist L;

InitLinklist(L);

CreateLinklist(L);

WriteLinklistToFile(strName, L);

ReadFromFile(strName);

Destroy(L);

return 0;

}

如何用c语言将文件中的数据写入链表中

sw是我链表的首地址

fp是文件的指针

下面定义链表类型:num域存放的是int型数据,可根据你的情况来改变。

typedef

struct

node{

int

num;

struct

node

*next;

}node;

p

指向链表中的首元结点

while(p!=null){

fprintf(fp,

“%d,%s”,

p-num);

p=p-next;

}

其实,这样操作是非常简单的。

C语言怎么从文件中将信息导入链表中

这个实现起来挺简单的,就是写起来麻烦点,不是一点代码能写完的!

1,建立一个链表,链表的节点struct定义为联系人信息的格式;

2,读取文件,把内容存入链表;

3,查询就根据姓名关键字遍历链表就行了;

4,把内容存入文件;

首先建立链表,以及插入节点,查询链表函数写出来;

文件的读取和存入到不是很麻烦;

—————————-下面是简单的实现,可以输入,存入文件,从文件读取,打印,如果还想要实现其他的稍修改一下就行了——

#includestdio.h

#includestdlib.h

#includestring.h

#define MAX 80

struct stu{

int id;

char name[MAX];

struct stu* next;

};

typedef struct stu STU;

typedef STU* STUPTR;

STUPTR insert(STUPTR head, int id, char* name);

void print_st(STUPTR head);

void save_to_file(FILE* fp, STUPTR head);

FILE* crt_file( void );

STUPTR read_to_link(STUPTR head);

int main( void )

{

int choice;

int stu_id;

char stu_name[MAX];

STUPTR head;

FILE* fp;

clrscr();

head = NULL;

clrscr();

printf( “please enter the choice!\n” );

scanf( “%d”, choice );

while( choice != 9 ){

switch(choice){

case 1: printf(“enter the insert —-id—name!\n”);

scanf( “%d%s”, stu_id ,stu_name);

head = insert(head,stu_id,stu_name);

break;

case 2:print_st(head);

break;

case 3:puts(“save the info to file e:\stu_info.txt!\n”);

fp = crt_file();

save_to_file( fp, head);

puts( “save the data sucessful!\n”);

fclose(fp);

break;

case 4:puts(“read the file to link!\n”);

head = NULL;

head = read_to_link(head);

puts(“read the file successful!\n”);

break;

}

printf( “please enter the choice!\n”);

scanf( “%d”, choice );

}

}

STUPTR insert(STUPTR head, int id, char* name)

{

STUPTR new, cur;

cur = head;

new = malloc( sizeof( STU) );

new-id = id;

strcpy(new-name, name);

new-next = NULL;

if(cur == NULL)

head = new;

else{

while(cur-next != NULL){

cur = cur-next;

}

cur-next = new;

}

return head;

}

void print_st(STUPTR head)

{

STUPTR cur=head;

int i;

i=1;

if(cur == NULL){

printf( “has no student info!\n” );

}

else while(cur != NULL){

printf( “%d:——%d—%s\n”, i,cur-id,cur-name);

i++;

cur = cur-next;

}

}

void save_to_file(FILE* fp, STUPTR head)

{

int i;

STUPTR cur;

cur = head;

while(cur != NULL){

fprintf(fp, “%d %s\n”, cur-id,cur-name);

cur = cur-next;

}

}

FILE* crt_file(void)

{

FILE* fp;

fp = fopen( “e:\stu_info.txt”, “w” ); /*w is right or not*/

if(fp == NULL)

puts(“shit!!!!!!!!!!”);

return fp;

}

STUPTR read_to_link( STUPTR head)

{

int id;

char name[MAX];

FILE* fp;

fp = fopen(“e:\stu_info.txt”, “r”);

while( !feof(fp) ){

fscanf(fp, “%d%s”, id, name );

head = insert(head, id, name);

}

return head;

}

c语言怎么把文本信息出去写入链队,然后处理后保存到文本文件里?提供一个思路就可以了。谢谢大神们了。

你的描述有点不清楚噶。我大概说一下,把文本文件以数据流的方式读出来,读到文件尾。把读出来的数据放到链表或者队列,一个一个处理,处理一个就往文本文件里面填一个。最后保存文件就可以了。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/308765.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2025-01-03 14:49
下一篇 2025-01-03 14:49

相关推荐

  • vue下载无后缀名的文件被加上后缀.txt,有后缀名的文件下载正常问题的解决

    本文旨在解决vue下载无后缀名的文件被加上后缀.txt,有后缀名的文件下载正常的问题,提供完整的代码示例供参考。 一、分析问题 首先,需了解vue中下载文件的情况。一般情况下,我们…

    编程 2025-04-29
  • 利用Python实现两个链表合并为一个有序链表

    对于开发工程师来说,实现两个链表合并为一个有序链表是必须掌握的技能之一。Python语言在链表处理上非常便利,本文将从多个方面详细阐述如何利用Python实现两个链表合并为一个有序…

    编程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件并生成完整的图像

    OBJ格式是一种用于表示3D对象的标准格式,通常由一组顶点、面和纹理映射坐标组成。在本文中,我们将讨论如何将多个OBJ文件拼接在一起,生成一个完整的3D模型。 一、读取OBJ文件 …

    编程 2025-04-29
  • Python中读入csv文件数据的方法用法介绍

    csv是一种常见的数据格式,通常用于存储小型数据集。Python作为一种广泛流行的编程语言,内置了许多操作csv文件的库。本文将从多个方面详细介绍Python读入csv文件的方法。…

    编程 2025-04-29
  • 为什么用cmd运行Java时需要在文件内打开cmd为中心

    在Java开发中,我们经常会使用cmd在命令行窗口运行程序。然而,有时候我们会发现,在运行Java程序时,需要在文件内打开cmd为中心,这让很多开发者感到疑惑,那么,为什么会出现这…

    编程 2025-04-29
  • Python程序文件的拓展

    Python是一门功能丰富、易于学习、可读性高的编程语言。Python程序文件通常以.py为文件拓展名,被广泛应用于各种领域,包括Web开发、机器学习、科学计算等。为了更好地发挥P…

    编程 2025-04-29
  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • Python将矩阵存为CSV文件

    CSV文件是一种通用的文件格式,在统计学和计算机科学中非常常见,一些数据分析工具如Microsoft Excel,Google Sheets等都支持读取CSV文件。Python内置…

    编程 2025-04-29
  • Python zipfile解压文件乱码处理

    本文主要介绍如何在Python中使用zipfile进行文件解压的处理,同时详细讨论在解压文件时可能出现的乱码问题的各种解决办法。 一、zipfile解压文件乱码问题的根本原因 在P…

    编程 2025-04-29
  • Python如何导入py文件

    Python是一种开源的高级编程语言,因其易学易用和强大的生态系统而备受青睐。Python的import语句可以帮助用户将一个模块中的代码导入到另一个模块中,从而实现代码的重用。本…

    编程 2025-04-29

发表回复

登录后才能评论