1.文本文件:基于字符编码的文件
2.二进制文件:基于值编码的文件
读文件
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
//注意:文件类型指针 不需要用户操作,每次读取字符后,光标都会后移
FILE *fp = fopen("D:\\a.txt", "r");
if (fp == NULL)
{
//1、找不到文件 2、没有权限 3、程序打开文件超出上限
printf("文件打开失败!\n");
return -1;
}
//文件操作
printf("文件打开成功!\n");
//读取文件结尾 结束标志 EOF -1
char ch;
while ((ch = fgetc(fp)) != EOF)
{
printf("%c\n", ch);
}
//文件关闭
fclose(fp);
system("pause");
return EXIT_SUCCESS;
}
写文件
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
//1、以写的形式打开文件
FILE * fp = fopen("../../a.txt", "w");
//2、判断文件的可用性
if (fp == NULL)
{
return -1;
}
//3、写文件||读文件
fputc('a', fp);
fputc('a', fp);
//4、关闭文件
fclose(fp);
return 0;
}
打开模式 | 含义 |
---|---|
r或rb | 以只读方式打开一个文本文件(不创建文件,若文件不存在则报错) |
w或wb | 以写方式打开文件(如果文件存在则清空文件,文件不存在则创建一个文件) |
a或ab | 以追加方式打开文件,在末尾添加内容,若文件不存在则创建文件 |
r+或rb+ | 以可读、可写的方式打开文件(不创建新文件) |
w+或wb+ | 以可读、可写的方式打开文件(如果文件存在则清空文件,文件不存在则创建一个文件) |
a+或ab+ | 以添加方式打开文件,打开文件并在末尾更改文件,若文件不存在则创建文件 |
2.在Windows平台下,以“文本”方式打开文件,不加b:
当读取文件的时候,系统会将所有的 “\r\n” 转换成 “\n”
当写入文件的时候,系统会将 “\n” 转换成 “\r\n” 写入
以"二进制"方式打开文件,则读\写都不会进行这样的转换