当前位置: 首页 > news >正文

Programming abstractions in C阅读笔记:p139-p143

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

一、技术总结

1.文件I/O操作

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

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

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接口中的boolcommentFlag = false; // 这里使用的是stdbool.h接口中的false,书中使用的是封装后的FALSEwhile ((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》:https://book.douban.com/subject/2003414

2. 英语

(1)Etymology Dictionary:https://www.etymonline.com

(2) Cambridage Dictionary:https://dictionary.cambridge.org

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

http://www.lryc.cn/news/151963.html

相关文章:

  • MyBatis-Plus学习笔记
  • linux安装docker全过程
  • Spring 中存取 Bean 的相关注解
  • Camunda 7.x 系列【38】表单服务 FormService
  • 保姆级教程之SABO-VMD-SVM的西储大学轴承诊断
  • 指向任意节点的带环链表
  • 应用于伺服电机控制、 编码器仿真、 电动助力转向、发电机、 汽车运动检测与控制的旋变数字转换器MS5905P
  • Ansible学习笔记(持续更新)
  • CCF HPC China2023|澎峰科技:使能先进计算,赋能行业应用
  • 【FlowDroid】一、处理流程学习
  • MyBatis——MyBatis插件原理
  • 简易虚拟培训系统-UI控件的应用5
  • Lnmp架构
  • es5的实例__proto__(原型链) prototype(原型对象) {constructor:构造函数}
  • Oracle DBlink使用方法
  • UE4 植物生长
  • 企业应用系统 PHP项目支持管理系统Dreamweaver开发mysql数据库web结构php编程计算机网页
  • 微服务通信[HTTP|RPC同步通信、MQ异步通信]
  • C语言模拟最简单的计算机
  • c++图论免费ppt,简单深度理解图论
  • xml中in的使用
  • Unity生命周期函数
  • 【OpenCV入门】第六部分——腐蚀与膨胀
  • [C++] STL_list常用接口的模拟实现
  • js实现点击查看全部/收起功能
  • 安全区域边界技术测评要求项
  • 基于YOLOV8模型的农作机器和行人目标检测系统(PyTorch+Pyside6+YOLOv8模型)
  • 我的私人笔记(安装hbase)
  • 【MySQL】用户管理
  • 音视频 ffmpeg命令转封装