南邮《高级语言程序设计》期末总复习及模块一(5)

2020-05-05 13:59

{

struct node{

int data; struct node *next

} *head,*p , a,b,c; int j;

a.data=10; b.data=20; c.data=30;

b.next=&c; c.next=&a; a.next=0; head=&b; p=head->next;

printf(\

}

动态申请一个结点空间:p=( struct node*)malloc(sizeof(struct node)),然后才能执行:p->data=…;p->next=…; 可以利用指针生成动态数组空间,例如: int *p;

p=(int *)malloc(sizeof(int)); /*申请一个int空间*/

p=(int *)malloc(2*sizeof(int)); /*申请2个连续的int空间,实现动态一维数组*/

p=(int *)calloc(2, sizeof(int)); /*申请2个连续的int空间,实现动态一维数组*/

模块五:文件

C语言中的文件的组成及分类:

C中的文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件 C文件打开的方式:

基本方式: r(只读) w(只写)、a(追加)

后面可以加上+表示可读可写(注意,如果打开一个新文件可读可写,则一定是w+;如果打开一个旧文件可读可写,则一定是r+)、加上b表示打开二进制文件,否则默认是对文本文件操作 注意:

文件的操作步骤:

(1) 定义FILE*文件指针,一个文件对应一个指针

(2) 利用文件指针打开文件fp=fopen(文件名,打开方式),注

意文件名要用双引号括起,并且路径之间用\\\\,打开方式也要用双引号括起

(3) 进行文件读写操作,一般用fgetc(fp)来从已有文件中获

取一个字符,用fputc(c, fp)向fp所对应的文件中写入一个字符,该操作往往要用循环条件控制执行。 用fwrite和fread实现数据块的读写,这在内存变量为结构体类型时特别有用,例如: struct node {

int x,y;

}s[10]={{2,3},{1,8}}; int i;

FILE *fp=fopen(“c:\\\\ABC.dat”,wb); fwrite(s,sizeof(struct node),10,fp); ?

则可以实现一次将s数组的10个结构体元素写入到文件ABC.dat中,以上还可以用下面的语句实现写入: ① fwrite(s,10*sizeof(struct node),1,fp); ②for (i=0;i<10;i++)

fwrite(s+i, sizeof(struct node),1,fp); (4) 文件操作完成后要用fclose(fp)关闭文件。 (5) 判断一个旧文件是否结束,常用的有两种方式:

!feof(fp)或((c=fgetc(fp))!=EOF)

练习:下面程序的功能是? #include #include void main( ) {

FILE *fp; char ch;

if ( (fp=fopen(\ {

printf(\ exit(0); }

while(!feof(fp)) { ch=fgetc(fp); putchar(ch); }

fclose(fp); } 思考:

(1)如果需要逆序在屏幕上显示原文件的内容,上述程序如何修改?

(2)若将文件c:\\aaa.txt原样复制到D盘下作为bbb.txt,程序该如何修改?

(3)若只将文件c:\\aaa.txt中的字母复制到D盘下作为bbb.txt,程序该如何修改?

(4)若将文件c:\\aaa.txt中的字母都转变为小写字母复制到D盘下作为bbb.txt,程序该如何修改?

(5)若将文件c:\\aaa.txt连接到D:\\ccc.txt后面,程序应该如何修改?


南邮《高级语言程序设计》期末总复习及模块一(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:JIRA用户指南

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: