内容正文:
在磁盘上,一篇文章、一首歌、一幅画都是一个文件。可见,一批数据在磁盘上必须以文件的形式存在。
C程序处理的结果如何保存到磁盘上呢?程序又如何获取保存在磁盘上的数据呢?
任务
读取与保存数据
1. 理解文件指针、位置指针的含义。
2. 掌握fopen、fclose、各种读写函数的使用。
3. 能够从文件中读入数据或将数据输出到文件中。
任务描述
任务目标
项目九 利用文件保存数据
(1) 文件指针: 每个被使用的文件都在内存中开辟一个相应的文件信息区,用来存入文件的名字、状态、位置等信息。因此,通过指向这个文件信息区的指针变量便可访问这个文件。其定义的一般形式为:
FILE *文件指针
FILE类型是一个结构体类型,其定义的信息包含在头文件stdio.h中,在程序中可直接使用FILE定义变量。
一、相关概念
知识储备
1
任务 读取与保存数据
(2)位置指针: 指向某文件中当前读写位置的指针。
(3)文件结束符: 文件结束的标志,用EOF表示,当文件位置指针指向EOF时,表示到达文件尾,可用feof()函数测试。
(4)对数据文件的操作:
① 读取: 程序从数据文件中取出数据,实现输入的过程。
② 写入: 程序将结果存入数据文件,实现输出的过程。
一、相关概念
任务 读取与保存数据
1. 读写文件的一般步骤
(1) 定义文件指针。
(2) 打开文件。
(3) 从文件中读写数据。
(4) 关闭文件。
二、读写文件
任务 读取与保存数据
2. 文件的打开与关闭
(1)打开文件:
打开文件的作用是建立或打开文件并使文件指针指向该文件,其一般形式为:
文件指针=fopen(文件名,文件使用方式)
如: 打开"c: \hzk.txt",以便从其中读取数据。
FILE *fphzk;
fphzk=("c: \\hzk.txt","r");
二、读写文件
任务 读取与保存数据
(2)关闭文件:关闭文件的功能是断开文件指针与文件间的联系,禁止再对该文件进行操作。其一般形式为:
关闭文件正常时,函数返回0,否则返回非零值。
二、读写文件
任务 读取与保存数据
3. 文件的读与写
(1)字符读写函数 : fgetc和fputc。
(2)字符串读写函数: fgets和fputs。
(3)格式化读写函数: fscanf和fprinf。
(4)数据块读写函数: freed和fwrite。
① 读函数(表9-2):
② 写函数(表9-4)
二、读写文件
任务 读取与保存数据
二、读写文件
任务 读取与保存数据
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
main()
{
FILE *f1,*f2,*f3;
char ch,str[20];int x;
f1=fopen("t1.txt","w");
f2=fopen("t2.txt","w");
f3=fopen("t3.txt","w");
ch=getchar();//从键盘输入数据
gets(str);
scanf("%d",&x);
fputc(ch,f1); //将数据存入文件
fputs(str,f2);
fprintf(f3,"%d",x);
fclose(f1);fclose(f2);fclose(f3);
}
在程序中,通常既需要读取数据,又要进行写出数据。此时,需特别关注打开文件时文件使用方式的指定。
如: 将一个字符,一个字符串,一个整数写入文件,则程序为:
任务 读取与保存数据
如: 从键盘输入一行字符,写入一个文件,再把该文件内容读出显示在屏幕上。
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main()
{
FILE *fp;
char ch;
if((fp=fopen("string.txt","w+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
printf("input a string: \n");
ch=getchar();
while(ch!=\n)
{
fputc(ch,fp);
ch=getchar();
}
rewind(fp); //使位置指针移到文件的开头
ch=fgetc(fp);
while(ch!=EOF