C语言用指针和链表读写文件

时间:2019-05-15 10:39:58下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《C语言用指针和链表读写文件》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《C语言用指针和链表读写文件》。

第一篇:C语言用指针和链表读写文件

#include

#include

#include

#include

#define MAXLEN_OF_KEYWORD 50

#define MAXLEN_OF_KEYWORDTYPE 30

char i,ch[5];

struct KeyWordBox

{

char Name[MAXLEN_OF_KEYWORD];

intId;

char Type[MAXLEN_OF_KEYWORDTYPE];//该单词的类型struct KeyWordBox *next;//指针

};

void write();

void read();

void main()

{

write();

read();

}

void write()

{

char *FileName=“FileName.txt”;

KeyWordBox transport;

memset(&transport,0,sizeof(struct KeyWordBox));

FILE *out=NULL;

FILE *test=NULL;

test=fopen(FileName,“a”);

if(test==NULL)

{

out=fopen(FileName,“w”);

printf(“ 1 continue,0 exitn”);

i=getchar();

while(i=='1')

{

printf(“请输入关键字n”);

scanf(“%s”,transport.Name);

printf(“请输入IDn”);

scanf(“%d”,&transport.Id);

printf(“请输入Typen”);

scanf(“%s”,transport.Type);

fwrite(&transport,sizeof(struct KeyWordBox),1,out);

printf(“ 1 continue,0 exitn”);

scanf(“%c”,&i);

}

fclose(out);

}

else

{

out=fopen(FileName,“a”);

printf(“ 1 continue,0 exitn”);

scanf(“%c”,&ch);

//i=getchar();

//while(i=='1')

while(strcmp(ch,“1”)==0)

{

printf(“请输入关键字n”);

scanf(“%s”,transport.Name);

printf(“请输入IDn”);

scanf(“%d”,&transport.Id);

printf(“请输入Typen”);

scanf(“%s”,transport.Type);

fwrite(&transport,sizeof(KeyWordBox),1,out);

printf(“ 1 continue,0 exit.n”);

scanf(“%s”,ch);

}

fclose(out);

}

}

void read()

{

char *FileName=“FileName.txt”;

KeyWordBox *Head=NULL,*q=NULL;

KeyWordBox *Body=NULL;

KeyWordBox *p=NULL;

FILE *in=NULL;

in=fopen(FileName,“r”);

if(in==NULL)

{

printf(“can't open the file!n”);

exit(0);

}

else

{

Head=(struct KeyWordBox*)malloc(sizeof(struct KeyWordBox));Head->next =NULL;

}}q=Head;while(!feof(in)){Body=(struct KeyWordBox*)malloc(sizeof(struct KeyWordBox));Body->next=NULL;fread(Body,sizeof(struct KeyWordBox),1,in);if(feof(in)){q->next=NULL;break;}q->next=Body;q=Body;printf(“%st%dt%sn”,Body->Name,Body->Id,Body->Type);} fclose(in);p=Head->next;while(p!=NULL){printf(“%st%dt%sn”,p->Name,p->Id,p->Type);p=p->next;}

第二篇:C语言指针实习

实习七:指针实习

一、实习目的

姓名:尹思智

学号:2012014413

完成日期:2013年4月

1.由键盘输入10个整数,将它们从小到大排序 2.将10个字符串(设其长度小于30)排序。

3.找出二维数组(设4行5列)中的最大数及其位置。

4.从键盘输入一串字符,从下标为m的字符开始,取出n个字符(m和n从键盘输入),形成一个新字符串 5.实现字符串的拷贝

6.编写一程序,将一个字符串反序存放。

二、实习步骤

1.由键盘输入10个整数,将它们从小到大排序 #include void main(){ int a[10],t,i;int *p;printf(“输入十个数:n”);for(p=a;p

scanf(“%d”,p);for(i=0;i<10;i++)for(p=a;p

if(*p>*(p+1))

{

t=*p;

*p=*(p+1);

*(p+1)=t;}

for(p=a;p

printf(“%d ”,*p);}

2、将10个字符串(设其长度小于30)排序 #include #include void main(){ char cty[10][30],*str[10],*temp;int i,j,k;for(i=0;i<10;i++)

str[i]=cty[i];printf(“输入十个字符串:n”);for(i=0;i<10;i++)

gets(cty[i]);for(i=0;i<9;i++){

k=i;

for(j=i+1;j<10;j++)

if(strcmp(str[k],str[j])>0)

k=j;

temp=str[k];

str[k]=str[i];

str[i]=temp;} printf(“排序后:n”);for(i=0;i<10;i++)

printf(“%sn”,str[i]);}

2.将10个字符串(设其长度小于30)排序。

3.找出二维数组(设4行5列)中的最大数及其位置。

4.从键盘输入一串字符,从下标为m的字符开始,取出n个字符(m和n从键盘输入),形成一个新字符串 5.实现字符串的拷贝

6.编写一程序,将一个字符串反序存放。

三、实习总结

第三篇:C语言实验报告《指针》

学号:__________ 姓名:__________ 班级:__________ 日期:__________

指导教师:__________ 成绩:__________

实验五 指针

一、实验目的1、掌握指针的概念、会定义和使用指针变量

2、掌握指向数组的指针变量

3、掌握字符串指针的使用

二、实验内容

1、输入3个字符串,按由小到大的顺序输出。(习题10.2)

2、写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。(习题10.6)

3、完善程序,要求使用函数功能:将一个数字字符串转换成一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“-1234”,则函数把它转换为整数值-1234。

#include

#include

long fun(char *p)

{

填写程序

}

void main()

{

char s[6];

long n;

printf(“Enter a string:n”);

gets(s);

n=fun(s);

printf(“%ldn”,n);

}

一、三、实验步骤与过程

第一┆范文网www.xiexiebang.com整理该文章,版权归原作者、原出处所有...四、程序调试记录

第四篇:C语言链表的概念

C语言链表的概念

在*中采用了动态分配的办法为一个结构分配内存空间。每一次分配一块空间可用来存放一个学生的数据,我们可称之为一个结点。有多少个学生就应该申请分配多少块内存空间,也就是说要建立多少个结点。当然用结构数组也可以完成上述工作,但如果预先不能准确把握学生人数,也现金网96y.org就无法确定数组大小。而且当学生留级、退学之后也不能把该元素占用的空间从数组中释放出来。

用动态存储的方法可以很好地解决这些问题。有一个学生就分配一个结点,无须预先确定学生的准确人数,某学生退学,可删去该结点,并释放该结点占用的存储空间。从而节约了宝贵的内存资源。另一方面,用数组的方法必须占用一块连续的内存区域。而使用动态分配时,每个结点之间可以是不连续的(结点内是连续的)。结点之间的联系可以用指针实现。即在结点结构中定义一个成员项用来存放下一结点的首地址,这个用于存放地址的成员,常把它称为指针域。

可在第一个结点的指针域内存入第二个结点的首地址,在第二个结点的指针域内又存放第三个结点的首地址,如此串连下去直到最后一个结点。最后一个结点因无后续结点连接,其指针域可赋为0。这样一种连接方式,在数据结构中称为链表。

下图为最一简单链表的示意图。

图中,第0个结点称为头结点,它存放有第一个结点的首地址,它没有数据,只是一个指针变量。以下的每个结点都分为两个域,一个是数据域,存放各种实际的数据,如学号num,姓名name,性别sex和成绩score等。另一个域为指针域,存放下一结点的首地址。链表中的每一个结点都是同一种结构类型。

例如,一个存放学生学号和成绩的结点应为以下结构:

struct stu{

int num;

int score;

struct stu *next;

} 前两个成员项博彩娱乐棋牌q07i5.org组成数据域,后一个成员项next构成指针域,它是一个指向stu类型结构的指针变量。

链表的基本操作对链表的主要操作有以下几种:

建立链表;

结构的查找与输出;

插入一个结点;

删除一个结点。

第五篇:C语言函数指针变量

C语言函数指针变量

在C语言中,一个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址。我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使该指针变量指向该函数。然后通过指针变量就可以找到并调用这个函数。我们把这种指向函数的指针变量称为函数指针变量。

函数指针变量定义的一般形式为:

类型说明符(*指针变量名)();其中类型说明符表示现金网96y.org被指函数的返回值的类型。(* 指针变量名)表示*后面的变量是定义的指针变量。最后的空括号表示指针变量所指的是一个函数。例如:

int(*pf)();

表示pf是一个指向函数入口的指针变量,该函数的返回值(函数值)是整型。

本例用来说明用指针形式实现对函数调用的方法。

int max(int a,int b){

if(ab)return a;

else return b;

}

main(){

int max(int a,int b);

int(*pmax)();

int x,y,z;

pmax=max;

printf(input two numbers:n);

scanf(%d%d,x,y);

z=(*pmax)(x,y);

printf(maxmum=%d,z);

}

从上述程序可以看出用,函数指针变量形式调用函数的步骤如下:

先定义函数指针变量,如后一程序中第9行 int(*pmax)();定义 pmax为函数指针变量。

把被调函数的入口地址(函数名)赋予该函数指针变量,如程序中第11行 pmax=max;

用函数指针变量形式调用函数,如程序第14行 z=(*pmax)(x,y);

调用函数的一般形式为:(*指针变量名)(实参表)

使用函数指针变量还应注意以下两点:

函数指针变量不能进行算术运算,这是与数组指针变量不同的。数组指针变量加减一个整数可使指针移动指向后面或前面的数组元素,而博彩娱乐棋牌q07i5.org函数指针的移动是毫无意义的。

函数调用中(*指针变量名)的两边的括号不可少,其中的*不应该理解为求值运算,在此处它只是一种表示符号。

下载C语言用指针和链表读写文件word格式文档
下载C语言用指针和链表读写文件.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    C语言指针的理解

    C_C++指针指针应用详解 前言:复杂类型说明 要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里......

    史上最全C语言指针总结

    C语言中的精华是什么,答曰指针,这也是C语言中唯一的难点。 C是对底层操作非常方便的语言,而底层操作中用到最多的就是指针,以后从事嵌入式开发的朋友们,指针将陪伴我们终身。 本......

    C语言程序设计实验十指针

    C语言程序设计实验十——指针 【实验1】 实验题目: 1、下列代码片段哪里有错误? char var1,ptr1; var1 = „x‟; ptr1 = &var1; 2、设有如下定义: Double var1, *ptr1, *ptr2;......

    C语言实验报告《指针》(5篇材料)

    学号:__________ 姓名:__________ 班级:__________ 日期:__________ 指导教师:__________ 成绩:__________实验五 指针一、 实验目的1、掌握指针的概念、会定义和使用指针变量2、......

    《c语言程序设计新视角》第六章指针小结

    《c语言程序设计新视角》第六章 指针小结 指针特殊存地址,变量运算受限的。 指针类型要注意,不一定是整型的。 想要存取单元值,先定地址是哪的。 指针若要移一下,步长类型确定的......

    c语言 二维数组与指针 教案

    26 讲授 9.6二维数组和指针 2课时掌握二维数组的地址表示方法 掌握指向数组元素的指针变量 掌握指向数组元素的指针变量 掌握用指向由m个元素组成的一维数组的指针变量 指......

    C语言数据结构与指针(大全5篇)

    数据结构【第四次】实验报告 学院:班级: 学号:姓名:实验四 (一)实验名称:C语言数据结构与指针 (二)实验目的:巩固复习前期所学C语言的函数参数传递、指针和结构体等知识点,加强学习数据......

    求解Josephus问题实验总结(用C语言循环单链表实现)(精选5篇)

    求解Josephus问题实验总结 1实验题目: josephus问题可描述如下: 设有n个人围成一个环,现从第s个人开始报数,数到第m的人出列,然后从出列的下一个人从新开始报数,数到第m的人又......