还在学习阶段-C语言动态链表写入文件

问题描述

C语言动态链表写入文件

struct Txl
{
char name[20];
long long tel;
struct Txl *next;

};
int n;
struct Txl creat(void)
{
struct Txl *p1,*p2,*head;
n=0;
p1=p2=(struct Txl
)malloc(LEN);
memset(p1,0,sizeof(LEN));
memset(p2,0,sizeof(LEN));

 printf("姓名t");
 scanf("%s",&p1->name);
 fflush(stdin);
 printf("电话t");
 scanf("%lld",&p1->tel);
 fflush(stdin);
 head=NULL;
 while(p1->tel!=0)
 {
     n=n+1;
     if(n==1)head=p1;
     else p2->next=p1;
     p2=p1;
     p1=(struct Txl*)malloc(LEN);
     memset(p1,0,sizeof(LEN));
    printf("姓名t");
 scanf("%s",&p1->name);
 fflush(stdin);
 printf("电话t");
 scanf("%lld",&p1->tel);
 fflush(stdin);
 }
 p2->next=NULL;
 return(head);

}
void prin(struct Txl *head){...}//输出。。。

void save(struct Txl *head)
{

 int i;
 struct Txl *p;
 FILE *fp;
 p=head;
 if((fp=fopen("1.txt","wb"))==NULL)
 {
     printf("不能打开文件");
     return;
 }
 for(i=0;i<n;i++)
 {
     if(fwrite(p,LEN,1,fp)!=1)
     {
         printf("写入失败");
     }
     p=p->next;

 }
 fclose(fp);

}
void main(){...}

解决方案

你的问题是什么?写不到文件里还是程序运行过程中有问题?

时间: 2024-09-13 19:09:49

还在学习阶段-C语言动态链表写入文件的相关文章

io流-求大神帮我将代码简化(本人还处在学习阶段,都是自学的)

问题描述 求大神帮我将代码简化(本人还处在学习阶段,都是自学的) package Test; import java.awt.BorderLayout; public class Ftest extends JFrame { private static final long serialVersionUID = 1L; private JPanel jContentPane = null; private JTextArea jTextArea = null; private JPanel c

malloc-C语言动态链表建立问题

问题描述 C语言动态链表建立问题 #include #include #define LEN sizeof(struct Student) int n = 0;//记录数据的个数 struct Student { int number; int score; struct Student *next; }; int main() { struct Student *creat(void); void print(struct Student *p); struct Student *p; p =

C语言创建链表错误之通过指针参数申请动态内存实例分析_C 语言

本文实例讲述了C语言创建链表中经典错误的通过指针参数申请动态内存,分享给大家供大家参考之用.具体实例如下: #include <stdio.h> #include <stdlib.h>// 用malloc要包含这个头文件 typedef struct node { int data; struct node* next;// 这个地方注意结构体变量的定义规则 } Node; void createLinklist(Node* pHder, int length) { int i =

C语言静态链表和动态链表_C 语言

1. 静态链表 结构体中的成员可以是各种类型的指针变量,当一个结构体中有一个或多个成员的基类型是本结构体类型时,则称这种结构体为"引用自身的结构体".如: struct link { char ch; struct link *p; } a; p是一个可以指向 struct link 类型变量的指针成员.因此,a.p = &a 是合法的表达式,由此构成的存储结构如图1所示. 图1 引用自身的结构体 例1 一个简单的链表 #include <stdio.h> stru

c语言-C中读取文件的字节值 求指教

问题描述 C中读取文件的字节值 求指教 #include #include #include #include using namespace std; int main() { FILE *fp=fopen("/home/nagainpkm/pwdSoftKeyboard/softkbd_example.apk", "r+"); int ch; if ( fp == NULL) { perror("Open file softkbd_example.ap

C语言之链表

这两天在复习C语言的知识,为了给下个阶段学习OC做准备,以下的代码的编译运行环境是Xcode5.0版本,写篇博文把昨天复习的C语言有关链表的知识给大家分享一下,以下是小菜自己总结的内容,代码也是按照自己的思路所编写的,有不足之处还请大牛们批评指教. 确切的说链表属于数据结构中线性表中的内容,在链表中存储的内容是按线性排列的,就像是一条线把所要存的数据串起来,可以把链表类比成一串珠子,数据就是一个个的珠子,数据间的next指针就相当于穿珠子的线. 链表操作的时间复杂度: 往链表中插入数据的时间复杂

[译]生活在 JavaScript 之中:学习第二门语言的好处

本文讲的是[译]生活在 JavaScript 之中:学习第二门语言的好处, 原文地址:Life after JavaScript: The Benefits of Learning a 2nd Language 原文作者:Nilson Jacques 译文出自:掘金翻译计划 译者:gy134340 校对者:Tina92,lsvih 你会多少种编程语言?根据最近的调查,大约 80% 的读者至少会两种.超过半数的人经常使用 PHP,我敢打赌大多数人就像我一样使用这门语言开始他们的 Web 开发. 最

那些年,我还在学习asp.net(二) 学习笔记_基础应用

那些年,我还在学习asp.net(二) 那些年觉得看视频是很轻松的了解一个东西,但是这样的不足就是感觉太慢了,没有看书来得快,所以在有了一些了解后,还得看点书,也许书上的不一定好,但书上会把每一个应该说到的地方说到,好有个初步的认识.比如说.NET平台.组件等知识的介绍,所以,那些年就开始了asp.net方面的进一步学习. 一.学习asp.net的准备知识 正如我前面那些年所学习的,在开始之前得对它们有一定的认识: 1.  html语言的基本使用 2.  CSS+DIV的学习,撑握基本的布局 3

那些年,我还在学习C# 学习笔记_C#教程

C#是一门面向对象的语言,具有面向对象的基本特征,抽象.封装.继承.多态等性质.学习C#除了一些基本的语法,还得学习一些新的特性,比如说:泛型.多线程.集合.反射等,下面就选其中一些来学习吧! 一.C#中的各种器 A. C#构造器-构造函数 如下: 复制代码 代码如下: //构造器1 public Products(int id) { _Id = id; } //构造器2,使用this来调用构造器1 public Products(int id, string Name, string Band