如何快速找回意外删除的Excel文件?
656
2022-05-28
文章目录
一、文件打开与关闭
(一)概述
(二)文件打开函数 - fopen()
1、调用格式
2、参数与返回值说明
3、文件使用方式
(二)文件关闭函数 - fclose()
1、调用格式
2、参数说明
二、文件读写函数
三、案例演示
1、编写程序 - 演示文件读写.c
2、运行程序,查看结果
四、课后作业
任务:将C盘Windows目录下的win.ini文件复制到D盘根目录,同时在控制台输出该文件内容。
本次我们准备学习C语言中的文件操作。内存里的数据要持久保存,那么就必然会涉及到文件的读写操作。这也是C语言学习中比较重要的一部分内容,希望大家理解并掌握。
一、文件打开与关闭
(一)概述
文件在进行读写操作之前要先打开,使用完毕要关闭。所谓打开文件,实际上是建立文件的各种有关信息,并使文件指针指向该文件,以便进行其它操作。关闭文件则断开指针与文件之间的联系,也就禁止再对该文件进行操作。在C语言中,文件操作都是由库函数来完成的。
(二)文件打开函数 - fopen()
1、调用格式
文件指针名 = fopen(文件名, 使用文件方式);
2、参数与返回值说明
“文件指针名”必须是被说明为FILE 类型的指针变量
“文件名”是被打开文件的文件名
“使用文件方式”是指文件的类型和操作要求
“文件名”是字符串常量或字符串数组
FILE *fp; fp = fopen("test.txt", "r");
1
2
其意义是在当前目录下打开文件test.txt,只允许进行“读”操作,并使fp指向该文件。
FILE *fp; fp = fopen("c:\test.jpg", "rb")
1
2
打开C盘根目录下文件test.jpg,只允许按二进制方式进行读操作。两个反斜线“\ ”中的第一个表示转义字符,第二个表示根目录。
3、文件使用方式
“rt”只读打开一个文本文件,只允许读数据
“wt”只写打开或建立一个文本文件,只允许写数据
“at”追加打开一个文本文件,并在文件末尾写数据
“rb”只读打开一个二进制文件,只允许读数据
“wb”只写打开或建立一个二进制文件,只允许写数据
“ab”追加打开一个二进制文件,并在文件末尾写数据
“rt+”读写打开一个文本文件,允许读和写
“wt+”读写打开或建立一个文本文件,允许读写
“at+”读写打开一个文本文件,允许读,或在文件末追加数据
“rb+”读写打开一个二进制文件,允许读和写
“wb+”读写打开或建立一个二进制文件,允许读和写
“ab+”读写打开一个二进制文件,允许读,或在文件末追加数据
在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。因此常用以下程序段打开文件:
if ((fp = fopen("c:\test.jpg", "rb") == NULL) { printf("error on open c:\test.jpg file!"); getch(); exit(1); }
1
2
3
4
5
如果返回指针为空,表示不能打开C盘根目录下的test.jpg文件,则给出提示信息“error on open c:\test.jpg!”,下一行getch()的功能是从键盘输入一个字符,但不在屏幕上显示。该行作用是等待,只有当用户从键盘敲任一字符才继续执行后续语句。exit函数返回非零值表示有错误发生。
(二)文件关闭函数 - fclose()
1、调用格式
fclose(文件指针名);
2、参数说明
“文件指针名”必须是被说明为FILE 类型的指针变量。
二、文件读写函数
字符读写函数 :fgetc()和fputc()
字符串读写函数:fgets()和fputs()
数据块读写函数:fread()和fwrite()
格式化读写函数:fscanf()和fprintf()
三、案例演示
1、编写程序 - 演示文件读写.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
2、运行程序,查看结果
第一次运行,查看结果
第二次运行,查看结果
说明:因为写文件采用的是追加方式,所以文件c:\love.txt里最后会有两次次输入的内容。
四、课后作业
任务:将C盘Windows目录下的win.ini文件复制到D盘根目录,同时在控制台输出该文件内容。
控制台
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。