NO.35 ---- 文件操作相关知识

**文件操作相关函数介绍:

1、文件打开函数fopen 用法:FILE fp=fopen( 参数一, 参数二 );
参数一:可以直接写文件名,例如:test.txt;也可以写文件的绝对路径,例如: D:/test.txt
参数二:打开文件之后的操作方式,主要有以下几种:
*
“r”.为读而打开文本文件.(不存在则出错)
“w”.为写而打开文本文件.(若不存在则新建,反之,则从文件起始位置写,原内容将被覆盖)
“a”.为在文件后面添加数据而打开文本文件.(若不存在,则新建;反之,在原文件后追加)
“r+”.为读和写而打开文本文件.(读时,从头开始;在写数据时,新数据只覆盖所占的空间,其后不变)
“wb”.为写而打开二进制文件.
“rb”.为读而打开二进制文件
“ab”.为在文件后面添加数据而打开一个二进制文件.
“rb+”.为读和写而打开二进制文件.只是在随后的读写时,可以由位置函数设置读和写的起始位置.
“w+”.首先建立一个新文件,进行写操作,随后可以从头开始读.(若文件存在,原内容将全部消失)
“a+”.功能与”a”相同;只是在文件尾部添加新的数据后,可以从头开始读.
“wb+”.功能与”w+”同.只是在随后的读写时,可以由位置函数设置读和写的起始位置.

2、文件关闭函数fclose 用法:int fclose( FILE *stream );

注意事项:”fopen函数与fclose函数二者需搭配使用,如果打开文件后忘记关闭会导致文件句柄泄露or资源泄露or文件描述泄露,类似于动态内存管理中的内存泄露。

3、读文件
fgetc(FILE fp);//从文件读取一字节数据以返回值的形式返回出来
fgets(const char
a,int n,FILE* fp);比写数据多了一个整数,这个整数代表你要读取的字符个数,这个也是我之前说的你必须记住你往里面写入的字符数组的字符个数
fscanf(FILE* fp, const char* c, ….); 比scanf()多了一个文件指针的形参,所以说这个函数不从黑色控制台读取的,而是从文件中读取数据**

4、写文件
fputc(FILE fp, int c);//将一字节数据写入文件,写入成功返回c,失败则返回-1
fputs(const char
a, FILE* fp); 将字符数组的指针或者动态申请的数组头指针指向的数据写入文件,写入成功则返回这个数组的头指针
fprintf(FILE* fp, const char* c, ….); 比printf多了一个文件指针的形参,所以说这个函数不是讲数据输出到黑色控制台的,而是输出到文件中**

相关代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
// 文件操作核心四步:
// 1、打开文件
// 2、关闭文件
// 3、读文件
// 4、写文件

int main()
{
	//FILE* fp = fopen("C:/2019年网课.txt", "w");
//if (fp!=NULL)
//{
//	fputs("fopen sxample", fp);
//	fclose(fp);

//}

FILE* pFile = fopen("D:/test.txt", "r");
if (pFile == NULL)
{
	printf("文件打开失败!%s\n", strerror(errno));
	system("pause");
	return 1; 
}

// fread 把数据从磁盘读到内存中
char buf[1024] = { 0 };
fread(buf, 1, 4, pFile);
printf("%s\n", buf);
fclose(pFile);
system("pause");
return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_42237990/article/details/88234485
35
今日推荐