当前课程知识点:C语言程序设计 >  第22讲 编程训练 >  编程训练 >  文件(上)

返回《C语言程序设计》慕课在线视频课程列表

文件(上)在线视频

返回《C语言程序设计》慕课在线视频列表

文件(上)课程教案、知识点、字幕

大家在使用计算机时最常接触的就是文件

计算机中图像 视频 声音 文字都以文件方式存储

与文件有关的编程不是C语言程序设计的核心内容

但学习这部分内容对于理解计算机的工作方式有很大帮助

文件一般指存储在外部介质上有名字的一组相关数据的集合

用文件可长期保存数据

实现数据共享

程序中的文件主要是两个操作

写 在程序运行时由程序在磁盘上建立一个文件

通过写操作将数据存入该文件

读 由程序打开磁盘上的某个已有的文件

并通过读操作将文件中的数据读入内存供程序使用

文件有两种情况

一种是文本文件

另外一种叫二进制文件

文本文件是一种字符序列

文件中只存储每个字符的编码

不存储其他信息

其他信息包括像字符格式、颜色、大小

例如

如果一个文本文件中存储和显示Hello!

实际存储的是这6个字符的ASCII码

这就是Hello!的ASCII码

当然这写成二进制形式了

完全也可以写成十进制或者十六进制

常见的文本文件包括Windows自带的记事本软件

输入 存储的文件以及各种编程语言源程序

像我们C语言的源程序也是文本文件

二进制文件是一种字节序列

文件中存储的数据的含义要靠打开该文件的软件来解读

相比于文本文件

二进制文件更普通

大多数文件都是二进制文件

例如word文件 图像文件 声音文件 视频文件等等

“二进制文件”这个词容易引起混淆

事实上

计算机中的信息全部是二进制存储的

那么如果是直接看分类的话

把文件分成文本文件与二进制文件

感觉好像文本文件不是二进制存储

这个就容易引起混淆

所以二进制文件或许叫做“非文本文件”更合适

对文件的操作包括

打开文件 关闭文件 从文件中读取数据

把数据写入文件 文件指针定位等

我们先看一下文件的打开和关闭

打开文件时用fopen这个函数

这是函数的原型

这是一个例子

这儿fopen的这几个参数含义分别是这样的

这个里面首先filename是文件名

可以包含路径

如果不包含路径

表示打开当前目录下的文件

这个mode是打开方式

常用的有”r”、”w”、”rw”和“a”

分别表示只读 只写 读写和添加

”rb“表示只读二进制文件

文件打开操作以后返回值为指向此文件的指针

留待以后使用

如果打开失败就返回NULL

然后这个在C语言中专门有一个这种文件的指针类型

就这么定义FILE *fp

表示这是一个名字叫fp的这样一个文件指针变量

那么现在来看一下刚才说的这个具体应用的例子

先定义这样一个文件指针变量

然后这里使用fopen

打开一个C根目录下的CONFIG.SYS这个文件

打开方式是这个mode是”rw”方式

是可以读也可以写

那么这个打开以后

打开的文件指针就赋值给fp

关闭文件用fclose

这是函数原型

使用的时候

比如说要把刚才打开的那个文件给它关闭掉就用fclose(fp)

这里面是文件指针

我们看一下以字符方式读写文件的这样一个例子

这个例子要求从键盘输入一串字符

转存到磁盘文件上

我们看一下这个程序

这儿定义文件指针

然后这样打开

这个地方没写路径

那就表示是当前目录下

以写的方式打开

然后如果打开以后文件指针等于NULL

表示打开失败

这样输出一个提示

然后程序退出

后面情况就是文件打开成功的情况

然后从键盘上输入一个字符

如果这个输入的字符不是回车符

那么就用fputc这个函数

把刚才输入的这个字符输出到文件当中去

然后再从键盘上读入一个字符

然后这样循环判断

如果不是回车符就继续写入到文件中

整个过程完了以后把文件关闭

我们把程序编译运行一下

然后看看运行结果

这个是我从键盘上输入的hello这5个字符

因为我们这个程序要求是从键盘上输入的字符

保存到当前目录下的”demo.txt“当中

我们打开当前目录看看实现了这个功能没有

这个就是用记事本打开这个文本文件

我们看到刚刚输入的hello

这几个字符已经保存到文件当中了

C语言程序设计课程列表:

第0讲 导言

-简单介绍课程性质等

-关于编程训练

第1讲 C程序框架

-C程序框架

-作业

第2讲 C程序编译环境

-C语言的编译环境

-作业

第3讲 顺序程序的几个例子

-顺序程序的几个例子

-作业

第4讲 常见的编译错误

-常见的编译错误

-作业

-编译错误探讨

第5讲 输入输出精要

-输入输出精要

-作业

-输入输出格式探讨

第6讲 选择结构的典型例子

-选择结构的典型例子

-作业

第7讲 选择结构常见错误

-选择结构常见错误

-作业

第8讲 排除程序错误的常规方法

-排除程序错误的常规方法

-排除错误探讨

第9讲 循环结构基础

-循环结构基础

-作业

-循环类型

第10讲 循环结构程序例子

-循环结构程序例子

-作业

-程序结构

第11讲 函数基础

-函数基础

-作业

第12讲 函数举例

-函数举例(上)

-函数举例(下)

第13讲 变量的作用域与生存期

-变量的作用域与生存期

-变量的使用

第14讲 数组基础

-数组基础

-作业

第15讲 数组应用举例

-数组应用举例(上)

-数组应用举例(下)

第16讲 数组参数传递

-数组参数传递(上)

-数组参数传递(下)

-作业

第17讲 指针变量

-指针变量(上)

-指针变量(下)

-作业

第18讲 字符串

-字符串(上)

-字符串(下)

-作业

第19讲 程序调试

-程序调试

-程序调试的重要性

-程序调试讨论

第20讲 结构体及其应用

-结构体及其应用(上)

-结构体及其应用(下)

第21讲 文件

- 文件(上)

-文件(下)

第22讲 编程训练

- 编程训练

文件(上)笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。