C语言 文件基本读写操作

C语言 文件读写操作

最近在写c语言课设,接触到很多新知识,所有在此记录自己的所得。
就不扯那么多底层的东西了,直接上相关知识

文件打开模式

打开模式 说明(只读=就是只能读取,只写=就是只能写入)
w 只写 的方式打开,并清空文件,若文件不存在则 新建文件
r 只读 的方式打开,若文件不存在,则文件打开失败
a 只写/追加 的方式打开,若文件不存在,则文件打开失败
w+ 读写 的方式打开,并清空文件,若文件不存在则新建文件
r+ 读写 的方式打开,若文件不存在,则文件打开失败
a+ 读写/追加 的方式打开,若文件不存在,则文件打开失败

打开二进制的,打开模式,同上,后面加个b:wb, rb , ab , wb + 。。。

文件操作函数

fopen()——打开文件

原型:
FILE* __cdecl fopen(char const* _FileName , char const* _Mode );

形参 说明
char const* _FileName 文件的路径
char const* _Mode 文件打开模式
返回值 说明
FILE* 文件指针
NULL 文件打开失败

fopen打开失败的原因:1,路径错误 。 2,文件不存在


fclose()——关闭文件流

原型:
int __cdecl fclose( FILE* _Stream );
通常在文件操作完成后,使用fclose()来关闭文件流

形参 说明
FILE* _Stream 已经打开的文件指针

fputs()——写入文件内容

原型:
int __cdecl fputs( char const* _Buffer, FILE* _Stream );
这里主要,如果你之前fopen打开的文件模式,不是只写,或者读写,编译器会报错

形参 说明
char const* _Buffer 传入一个自定义的字符数组,或指针
FILE* _Stream 已经打开的文件指针

成功返回0 ,失败返回非零的值。


fgets()——获取文件内容

原型:
char* __cdecl fgets( char* _Buffer, int _MaxCount, FILE* _Stream);

形参 说明
char* _Buffer 传入一个自定义的字符数组,或指针
int _MaxCount 最大字符数(1024)
FILE* _Streamt 已经打开的文件指针

打开文件实例

我们用vs2017打开新建一个文件

//输入以下代码
#include <stdio.h>

int main() {
	//1.创建文件结构指针
	//2.传入test.txt这个相对路径下的文件
	//3.使用w操作符新建文件
	FILE *filepointer = fopen("test.txt","w");
	if (filepointer==NULL) {
		printf("文件打开失败");
	}
	else {
		printf("文件打开成功");
	}
	return 0;
}

然后点击运行工具栏的本地windows调速器运行代码,
会出现下图:
函数已经被废弃
这里我们要注意了,vs2017对一些函数进行了修改,像fopen,printf,scanf函数都被弃用。
解决方法——点击链接:https://blog.csdn.net/qq_31254489/article/details/105548474

解决函数不安全的问题后,得到结果:

在这里插入图片描述

读写文件实例

#include <stdio.h>

int main() {

	FILE *filepointer = fopen("test.txt","w+");
	if (filepointer==NULL) {
		printf("文件打开失败");
	}
	else {
		printf("文件打开成功\n");
		//向文件写入字符串
		fputs("测试测试测试",filepointer);
		
	}
	//关闭文件
	fclose(filepointer);
	//以读写的方式打开文件
	filepointer = fopen("test.txt","r+");
	//创建缓冲区
	char buf[1024];
	//向文件读取字符串
	fgets(buf, 1024, filepointer);
	printf("%s", buf);
	


	return 0;

}

运行得到结果:
在这里插入图片描述

发布了7 篇原创文章 · 获赞 98 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_31254489/article/details/105547297