栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言的文件打开(多种方式),读写,关闭,文件指针偏移等操作,理解读写原理

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言的文件打开(多种方式),读写,关闭,文件指针偏移等操作,理解读写原理

读写前对文件进行的操作

先在解决方案的同级目录下创建一个.txt文件用于实验操作

修改文件的打开方式
将命令参数修改为相对路径

FILE* fp = fopen(argv[1], "r+");


启动.exe文件调用我的main()函数
(.exe文件生成在解决方案同级的debug目录下)

fgetc和fputc
#define _CRT_SECURE_NO_WARNINGS
#include

//main函数由启动我们exe的程序调用
int main(int argc,char *argv[])
{
	printf("argc=%dn", argc);//传递了多少个参数
	int i;
	//输出每一个参数
	for (i = 0; i < argc; i++)
	{
		printf("%sn", argv[i]);
	}
	//	打开文件			相对路径
	//FILE* fp = fopen("file.txt", "r");
	//直接通过传参选择需要打开的文件,需要传参
	//r+可读写
	//FILE* fp = fopen(argv[1], "r+");
	//只写
	FILE* fp = fopen(argv[1], "w");
	if (NULL == fp)
	{
		//打印报错信息
		perror("fopen");
		return 0;
	}
	char c;
	//打印字符
	//while ((c = fgetc(fp)) != EOF)
	//{
	//	printf("%c", c);
	//}
	//写入字符
	int ret;
	ret = fputc('w', fp);
	if (EOF == ret)
	{
		perror("fopen");
	}
	//执行fclose时字符才成功写入
	fclose(fp);
	return 0;

}
fread和fwrite
#define _CRT_SECURE_NO_WARNINGS
#include
int main()
{
	FILE* fp = fopen("file.txt", "r+");
	if (NULL == fp)
	{
		//打印报错信息
		perror("fopen");
		return 0;
	}
	//初始化解决输出乱码的问题
	char buf[128] = {0};
	int ret;

	//写入
	strcpy(buf, "howareyou");
	ret = fwrite(buf, sizeof(char), strlen(buf), fp);
	//将磁盘上的buf清空,确认读出来的是成功写入的
	memset(buf, 0, sizeof(buf));
	//改变文件指针fp
	fseek(fp,-9, SEEK_CUR);
	//读出
	ret=fread(buf, sizeof(char), 20, fp);
	puts(buf);
	return 0;
}
fread和fwrite处理整形的情况
#define _CRT_SECURE_NO_WARNINGS
#include
int main()
{
	FILE* fp = fopen("file.txt", "r+");
	if (NULL == fp)
	{
		//打印报错信息
		perror("fopen");
		return 0;
	}
	int i = 9;
	
	fwrite(&i, sizeof(int), 1, fp);//在ascii码表上对应的是水平制表栏,所有写入的内容看不见
	fseek(fp, 0, SEEK_SET);
	int j = 0;
	fread(&j, sizeof(int), 1, fp);
	printf("j=%dn", j);
	fclose(fp);

}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/849817.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号