【黑马程序员】C语言基础-文件管理
来源:互联网 发布:matlab简单迭代算法 编辑:程序博客网 时间:2024/05/16 01:57
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
一、什么是文件
文件有不同的类型,在程序设计中,主要用到两种文件:
1)程序文件(ASCII码文件) 包括源文件(.c)、目标文件(.obj)、可执行文件(.exe)等。
2)数据文件 文件内容不是程序,而是供程序运行时读写文件。
为了简化用户对输入输出的设备的操作,使用户不必去区分各种输入输出设备之间的区别,操作系统把各种设备都统一作为文件的处理。
文件一般指存储在外部介质上得数据的集合。
二、文件名
一个文件件要有一个唯一的文件标识,以便用户识别和引用。
文件标识包括3部分:
1)文件路径
2)文件名主干
3)文件后缀
三、文件指针
每个被使用的文件都在内存中开辟了一个相应的文件信息去,用来存放文件的信息。这些信息保存在一个结构体变量中。该结构体由系统声明,取名FILE
定义文件类型的指针变量:
FILE *文件指针名
四、文件的打开和关闭
用fopen函数打开文件
使用格式:
fopen(文件名,使用文件方式);
使用文件方式:
1)“r” 只读 打开一个只存在的文件,准备从文件中读取数据,不能写入。
2)“w” 只写 创建一个新文件,准备写入数据,不能读,如果文件存在则覆盖。
3)“a” 追加 打开一个已存文件,在尾部追加信息,不能读。如果不存在,则创建并加入。
4)“r+” 读写 创建新文件,重名覆盖。
5)“w+” 读写 创建新文件,重名覆盖。
6)“a+” 读写 追加数据信息
7)“t” 打开文本文件
8)“b” 打开二进制文件
用fclose关闭文件
使用格式:
fclose(文件指针名);
例:
FILE *fp;fp = fopen("a1","r");fclose(fp);
*使用此函数必须调用stdio.h头文件
四、顺序读写数据文件
fgetc函数:从文件指针指向的文件读入一个字符
返回值:读成功返回所读字符,失败返回结束标志EOF
调用格式:
fgetc(文件指针名);
fputc函数:把字符写到文件指针所指向的文件中
返回值:输出成功返回输出的字符,失败分那会结束标志EOF
调用格式:
fputc(字符,文件指针名);
例:
#include <stdio.h>int main(int argc, const char * argv[]) { //定义字符 char ch; //定义文件指针 FILE *fp = fopen("av.txt", "w+"); //判断是否指向成功 if (fp!=NULL) { //输入字符串 printf("请输入一个字符串:\n"); ch = getchar(); //字符计数器 int count = 0; // while (ch!='\n') { count ++; fputc(ch, fp); ch = getchar(); } printf("您总共收入了%d个字符\n",count); } rewind(fp); ch = fgetc(fp); while (ch!=EOF) { putchar(ch); ch = fgetc(fp); } fclose(fp); printf("\n"); return 0;}
fgets函数:从文件指针指向的文件读入一个规定长度的字符串,存入字符数组
返回值:成功返回地址,失败返回NULL
使用格式:
fgets(字符串指针,字符串长度,文件指针);
fputs函数:把字符串指针指向的字符写入文件指针指向的文件中
返回值:输出成功返回0,否则返回非0值
使用格式:
fputs(字符串指针,文件指针);
例:
#include <stdio.h>int main(int argc, const char * argv[]) { char a[50] = {"my name is Ace!"}; int count = 0; FILE *fp = fopen("ace.txt", "w+"); if (fp!=NULL) { count = fputs(a, fp); printf("写入成功,本次写入了%d个字符!\t",count); } printf("\n"); rewind(fp); fgets(a, sizeof(a), fp); printf("文件中的信息为%s\n",a); fclose(fp); return 0;}
fscanf和fprintf函数:格式化读写函数
使用格式:
fscanf(文件指针名,格式字符串,输入表列);
数据块读写函数:
fread函数:读取文件中的数据
fwrite函数:将文件写入文件
使用格式:
fread(buffer,size,count,fp);
fwirte(buffer,size,count,fp);
在fwrite中表示存放输出数据的首地址
size:表示数据块块数
count:表示要读写的数据块块数
fp:文件指针
例:
#include <stdio.h>struct Students{ char name[21]; int age; float score;};int main(int argc, const char * argv[]) { //定义结构体数组 struct Students stu[3] = {{"瓦王",40,90.22f},{"地狱咆哮",55,95.12f},{"吉安娜",30,70.98f}}; //打开文件指针// int j = sizeof(struct Students);// printf("%d\n",j); FILE *fp = fopen("wow.data", "wb+"); if (fp!=NULL) { //写入数据 for (int i=0; i<3; i++) { fwrite(&stu[i], sizeof(struct Students), 1, fp); } printf("写入成功!\n"); //接收文件数据 rewind(fp); struct Students stu2[3]; for (int i=0; i<3; i++) { fread(&stu2[i], sizeof(struct Students), 1, fp); } for (int i=0; i<3; i++) { printf("姓名:%s 年龄:%d 战力:%.2f\n",stu2[i].name,stu2[i].age,stu2[i].score); } } //结束文件指针 fclose(fp); return 0;}
rewind函数:将文件指向文件开头
使用格式:
rewind(文件指针);
0 0
- 【黑马程序员】C语言基础-文件管理
- 黑马程序员——c语言基础:文件管理
- 黑马程序员——c语言基础:内存管理
- [黑马程序员][C语言]基础
- 【黑马程序员】C语言文件
- 黑马程序员-C语言-文件
- 黑马程序员-----------C语言基础-----------基础语法
- 黑马程序员-OC语言基础:内存管理
- 黑马程序员-C基础-C语言概述
- [黑马程序员]C语言内存管理
- 黑马程序员-IOS-C语言基础
- 黑马程序员-C语言基础学习(一)
- 黑马程序员-C语言基础学习(二)
- 黑马程序员-C语言基础学习(三)
- 黑马程序员-C语言基础学习(四)
- 黑马程序员-C语言基础学习(五)
- 黑马程序员-C语言基础学习(六)
- 黑马程序员_1 c语言基础 运算
- 迭代器作为函数参数传入时的注意事项
- Ali-Wax使用和源码解析系列-Wax的集成和调试环境搭建
- Android Studio新手经验
- app常用
- AudioConverterNew from AudioQueueNew returned 'fmt?'
- 【黑马程序员】C语言基础-文件管理
- Hbuider hybrid app开发---被预加载的页面无法在mui.init中去成功预加载其他页面的问题
- Android学习笔记(二):layout_weight的解读
- MPI学习-MPI_Bcast and MPI_Scatter
- SSH学习之——Spring、Struts和Hibernate整合开发
- java包命名规则
- 移动硬盘数据丢失恢复办法
- redis 集群方案
- 用Redis实现分布式锁 与 实现任务队列