文件
什么是文件
磁盘(硬盘)上的文件是文件。在程序设计中,文件分为两种:程序文件,数据文件。
##为什么使用文件
运行程序时,数据存储在电脑的内存中,当程序退出,内存回收,数据也会丢失。为了防止数据丢失,要将数据持久化的保存,因此要使用文件进行存储。
如何区分文件
文件名便是文件的唯一标识,用于用户区分。
文件名包含三部分:文件路径+文件名主干+文件后缀
根据数据的组织形式,数据文件被分为文本文件和二进制文件
文本文件 | 二进制文件 |
---|---|
以二进制的形式存储 | 以ASCII的形式存储 |
.txt | .obj |
能看懂 | 看不懂(乱码) |
文件的打开与关闭
流:可以把它想象成流淌着字符的河。C语言针对文件、画面、键盘等的数据输入输出操作都是通过流操作的。一般情况下,向流写数据或读取数据都要先打开流。
为什么我们从键盘输入数据,屏幕输出数据没有打开流呢?
因为C语言程序启动时,默认打开了三个流(stdin,stdout,stderr)
FILE *fopen(const char * filename,const char * mode);//打开文件
int fclose(FILE * stream);//关闭文件
函数名 | 功能 | 适用于 |
---|---|---|
fgetc | 字符输入函数 | 所有输入流 |
fputc | 字符输出函数 | 所有输出流 |
fgets | 文本行输入函数 | 所有输入流 |
fputs | 文本行输出函数 | 所有输出流 |
fscanf | 格式化输入函数 | 所有输入流 |
fprintf | 格式化输出函数 | 所有输出流 |
fread | 二进制输入 | 文件 |
fwrite | 二进制输出 | 文件 |
只写文件(代码练习)
#define _crt_secure_no_warnings 1
#include<stdio.h>
int main()
{
FILE* pf = fopen("1.txt", "w");
if (pf == NULL)
{
perror("fopen");
return 1;
}
char ch = 0;
for (ch = 'a'; ch <= 'z'; ch++)
{
fputc(ch, pf);
}
fclose(pf);
pf = NULL;
return 0;
}
注意:打开的文件在此创建的项目文件里。(要养成查cplusplus【旧版】的习惯)
逐个输出文本的字符
#define _crt_secure_no_warnings 1
#include<stdio.h>
int main()
{
FILE* pf = fopen("1.txt", "r");
if (pf == NULL)
{
perror("fopen");
return 1;
}
char ch = 0;
while ((ch = fgetc(pf) != EOF))
{
printf("%c\n", ch);
}
fclose(pf);
pf = NULL;
return 0;
}