在《Programming abstractions in C》第139-143页中,如何理解抽象数据类型与数据结构之间的关系?

2026-04-12 02:211阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计719个文字,预计阅读时间需要3分钟。

在《Programming abstractions in C》第139-143页中,如何理解抽象数据类型与数据结构之间的关系?

《C语言中的编程抽象》学习第55天,p139-p140总结如下:

一、技术总结

1.文件I/O操作

文件I/O操作可以分为以下步骤:(1)声明文件指针对象:File *infile;(2)打开文件:fopen();

《Programming Abstractions In C》学习第55天,p139-p140,总结如下:

一、技术总结

1.文件I/O操作

文件I/O操作可以分为一下这些步骤:

(1)声明文件指针对象。

在《Programming abstractions in C》第139-143页中,如何理解抽象数据类型与数据结构之间的关系?

File *infile;

(2)打开文件

fopen()。打开文件的模式有“r”, "w", "a"三种模式。

(3)传输数据

读取文件的方式可以是character by character( getc()/putc() ),也可以是line by line( fget()/fput() )。

(4)关闭文件

fclose()。

2.文件I/O操作示例:复制文件

#include <stdio.h> #include <stdbool.h> // for bool, true, false data type #include <stdlib.h> // for exit() void CopyRemovingComments(FILE *infile, FILE *outfile); int main() { // 声明文件指针对象 FILE *infile, *outfile; char *infileName, *outfileName; /* * 打开文件:fopen() * 如果文件不存在,则返回NULL,所以需要检查 */ infileName = "D:\\CProject\\chater3.4\\jabber.txt"; // 这里使用的是绝对路径,也可以使用相对路径 outfileName = "D:\\CProject\\chater3.4\\jabbercopy.txt"; infile = fopen(infileName, "r"); if (infile == NULL) { printf("Cannot open input file: %s \n", infileName); exit(0); } /* * 传输数据 * 传输数据有很多种方式,例如chracter by character(getc/putc),line by line(fget/fput, ReadLine) * 为了解决stdio.h存在的一些问题,作者对stdio进行了封装,封装后得到的的是simpio */ outfile = fopen(outfileName, "w"); if (outfile == NULL) { printf("Cannot open output file: %s \n", outfileName); exit(0); } CopyRemovingComments(infile, outfile); /* * 关闭文件 */ fclose(infile); fclose(outfile); printf("Copying is completed"); return 0; } void CopyRemovingComments(FILE *infile, FILE *outfile) { int ch, nch; bool commentFlag; // 这里使用的是stdbool.h接口中的bool commentFlag = false; // 这里使用的是stdbool.h接口中的false,书中使用的是封装后的FALSE while ((ch = getc(infile)) != EOF) { if (commentFlag) { if (ch == '*') { nch = getc(infile); // if (nch == '/') { commentFlag = false; } else { ungetc(nch, infile); } } } else { if (ch == '/') { nch = getc(infile); if (nch == '*') { commentFlag = true; } else { ungetc(nch, infile); } } if (!commentFlag) { putc(ch, outfile); } } } }

二、英语总结

1.endpoint什么意思?

答:c.the end of sth(终点)。

2.transfer什么意思?

答:transfer也是一个在计算机相关资料中经常看到的词。p140, For an input file, the function read data from the file into your program; for an output file, the function transfer data from the program to the file。数据从文件到程序中,或者从程序中到文件,即是一种transfer。通过该例句,对tranfer有一个形象的了解。

3.intermix什么意思?

答:

(1)解释:vi/vt. to combine two or more different things。

(2)搭配:intermix sth with sth。

(3)例句:p140, Doing so allows you to intermix numeric data with strings and other data types。

三、参考资料

1. 编程

(1)Eric S.Roberts,《Programming Abstractions in C》:book.douban.com/subject/2003414

2. 英语

(1)Etymology Dictionary:www.etymonline.com

(2) Cambridage Dictionary:dictionary.cambridge.org

欢迎搜索及关注:编程人(a_codists)

本文共计719个文字,预计阅读时间需要3分钟。

在《Programming abstractions in C》第139-143页中,如何理解抽象数据类型与数据结构之间的关系?

《C语言中的编程抽象》学习第55天,p139-p140总结如下:

一、技术总结

1.文件I/O操作

文件I/O操作可以分为以下步骤:(1)声明文件指针对象:File *infile;(2)打开文件:fopen();

《Programming Abstractions In C》学习第55天,p139-p140,总结如下:

一、技术总结

1.文件I/O操作

文件I/O操作可以分为一下这些步骤:

(1)声明文件指针对象。

在《Programming abstractions in C》第139-143页中,如何理解抽象数据类型与数据结构之间的关系?

File *infile;

(2)打开文件

fopen()。打开文件的模式有“r”, "w", "a"三种模式。

(3)传输数据

读取文件的方式可以是character by character( getc()/putc() ),也可以是line by line( fget()/fput() )。

(4)关闭文件

fclose()。

2.文件I/O操作示例:复制文件

#include <stdio.h> #include <stdbool.h> // for bool, true, false data type #include <stdlib.h> // for exit() void CopyRemovingComments(FILE *infile, FILE *outfile); int main() { // 声明文件指针对象 FILE *infile, *outfile; char *infileName, *outfileName; /* * 打开文件:fopen() * 如果文件不存在,则返回NULL,所以需要检查 */ infileName = "D:\\CProject\\chater3.4\\jabber.txt"; // 这里使用的是绝对路径,也可以使用相对路径 outfileName = "D:\\CProject\\chater3.4\\jabbercopy.txt"; infile = fopen(infileName, "r"); if (infile == NULL) { printf("Cannot open input file: %s \n", infileName); exit(0); } /* * 传输数据 * 传输数据有很多种方式,例如chracter by character(getc/putc),line by line(fget/fput, ReadLine) * 为了解决stdio.h存在的一些问题,作者对stdio进行了封装,封装后得到的的是simpio */ outfile = fopen(outfileName, "w"); if (outfile == NULL) { printf("Cannot open output file: %s \n", outfileName); exit(0); } CopyRemovingComments(infile, outfile); /* * 关闭文件 */ fclose(infile); fclose(outfile); printf("Copying is completed"); return 0; } void CopyRemovingComments(FILE *infile, FILE *outfile) { int ch, nch; bool commentFlag; // 这里使用的是stdbool.h接口中的bool commentFlag = false; // 这里使用的是stdbool.h接口中的false,书中使用的是封装后的FALSE while ((ch = getc(infile)) != EOF) { if (commentFlag) { if (ch == '*') { nch = getc(infile); // if (nch == '/') { commentFlag = false; } else { ungetc(nch, infile); } } } else { if (ch == '/') { nch = getc(infile); if (nch == '*') { commentFlag = true; } else { ungetc(nch, infile); } } if (!commentFlag) { putc(ch, outfile); } } } }

二、英语总结

1.endpoint什么意思?

答:c.the end of sth(终点)。

2.transfer什么意思?

答:transfer也是一个在计算机相关资料中经常看到的词。p140, For an input file, the function read data from the file into your program; for an output file, the function transfer data from the program to the file。数据从文件到程序中,或者从程序中到文件,即是一种transfer。通过该例句,对tranfer有一个形象的了解。

3.intermix什么意思?

答:

(1)解释:vi/vt. to combine two or more different things。

(2)搭配:intermix sth with sth。

(3)例句:p140, Doing so allows you to intermix numeric data with strings and other data types。

三、参考资料

1. 编程

(1)Eric S.Roberts,《Programming Abstractions in C》:book.douban.com/subject/2003414

2. 英语

(1)Etymology Dictionary:www.etymonline.com

(2) Cambridage Dictionary:dictionary.cambridge.org

欢迎搜索及关注:编程人(a_codists)