文件读写:
头文件 #include <stdio.h>
文件的分类分类: 文本文件,二进制文件
文本文件:
储存的是ASCII码的二进制 ‘2’ ‘5’ ‘5’
windows和linux下读取文件换行符不一样
Windows下 \r\n
Linux下是 \n
二进制文件:
储存的是数据的补码 11111111
文件IO:
FILE *fopen(const char *path, const char *mode);
FILE* fp=fopen("xiaoyk.c","r"); //使用例子 FILE* fp=fopen("路径","rwa +等6种情况");
path:文件路径
mode:打开模式
功能:打开或者创建文件
r:以只读权限打开文件,如果文件不存在则打开失败
r+:在r的基础上加入写权限
w:以只写权限打开文件,如果文件存在则清空写入,如果文件不存在则创建。
w+:在w的基础上加入读权限
a:以只写权限打开文件,如果文件存在则在末尾追加写入,如果文件不存在则创建
a+:在a的基础上加入读权限
返回值:结构指针,不需要关心它的成员,只需要知道它是操作文件的凭证,也叫文件指针。
#include <stdio.h>
int main(int argc,const char* argv[])
{
FILE* fp=fopen("xiaoyk.c","r"); //只读打开
if(NULL==fp) //返回值位NULL说明文件不存在打开失败
{
printf("文件打开失败 %m\n");
perror("fopen");//等于%m
}
else //存在则打开成功
{
printf("文件打开成功\n");
}
}
结果提示
//因为我当前目录下xiaoyk.c不存在所以显示一下内容
文件打开失败
文件打开失败 No such file or directory
fopen: No such file or directory
请按 ENTER 或其它命令继续
二进制方式读写:
fwrite() 写入文件
size_t fwrite(const void *ptr,size_t size,size_t nmemb,FILE *stream);
//例 int a[10] fwrite(a,4,10,fwp);
功能:把内存中的数据写入到文件中
ptr:内存的地址
size:一次写入size字节
nmemb:写入多少