文件操作的一些内容

关闭文件

fclose(fp);

fp=NULL;

打开文件

FILE* fp=fopen("xxx.xxx","xx");

第一个参数为设置的文件的类型

第二个参数有以下

操作作用文件不存在
"w"(只写)为了输出数据,打开一个文本文件建立一个新的文件
"r"(只读)为了输出数据打开一个已经存在的文件出错
“a”(追加)向文本文件尾添加数据出错
“rb”(只读)为了输入数据,打开一个二进制文件出错
“wb”(只写)为了输出数据,打开一个二进制文件建立一个新的文件
“ab”(追加)向一个二进制文件尾添加数据出错
“r+”(读写)为了读和写,打开一个文本文件出错
“w+”(读写)为了读和写,建立一个新的文件建立一个新的文件
“a+”(读写)打开一个文件,在文件尾进行读写建立一个新的文件
“rb+”(读写)为了读和写,打开一个二进制文件出错
“wb+”(速写)为了读和写,新建一个文本文件建立一个新的文件
“ab+”(读写)打开一个二进制文件,在文件尾进行读写建立一个新的文件

有关文件顺序读写的函数有

功能函数名适用于
字符输入函数fgetc所有输入流
字符输出函数fputc所有输出流
文本行输入函数fgets所有输入流
文本行输出函数fputs所有输出流
格式化输入函数fscanf所有输入流
格式化输出函数fprintf所有输出流
二进制输入fread文件
二进制输出fwrite文件

键盘--标准输入设备-----stdin

屏幕--标准输出设备-----stdout

fputc函数的使用

int main()
{
	FILE* fpwrite = fopen("text.txt", "w");
	if (fpwrite == NULL)
	{
		perror("打开失败");
		return;
	}
	fputc('H', fpwrite);
	fputc('e', fpwrite);
	fputc('l', fpwrite);
	fputc('l', fpwrite);
	fputc('o', fpwrite);


	fclose(fpwrite);
	fpwrite = NULL;

	return 0;
}

运行后在text.txt文件中可以看到

 fgetc函数的使用

text.txt中含有Hello

int main()
{
	FILE* fpread = fopen("text.txt", "r");
	if (fpread == NULL)
	{
		perror("打开失败");
		return;
	}
	printf("%c\n", fgetc(fpread));
	printf("%c\n", fgetc(fpread));
	printf("%c\n", fgetc(fpread));
	printf("%c\n", fgetc(fpread));
	printf("%c\n", fgetc(fpread));


	fclose(fpread);
	fpread = NULL;

	return 0;
}

运行后在命令台可以看到

fputs函数使用

int main()
{
	FILE* fpwrites = fopen("text1.txt", "w");
	if (fpwrites == NULL)
	{
		perror("打开失败");
		return;
	}
	fputs("Hello", fpwrites);
	fputs("World", fpwrites);

	fclose(fpwrites);
	fpwrites = NULL;
	return 0;
}

 在text1.txt文件中显示

fgets函数的使用

int main()
{
	FILE* fpreads = fopen("text1.txt", "r");
	char tmp[100] = { 0 };
	if (fpreads == NULL)
	{
		perror("打开失败");
		return;
	}
	//将fpreads中50个字符输出到tmp中
	fgets(tmp, 50, fpreads);
	//输出tmp
	printf("%s\n", tmp);
	fclose(fpreads);
	fpreads = NULL;
	return 0;
}

 在命令台中显示

fprintf函数使用

int main()
{
	FILE* fpwrite = fopen("text2.txt", "w");
	if (fpwrite == NULL)
	{
		perror("打开失败");
		return;
	}

	fprintf(fpwrite, "%s %s %s %d", "Hello", "Word", "in", 2021);

	fclose(fpwrite);
	fpwrite = NULL;
	return 0;
}

 在text2.txt中显示

 fscanf函数的使用

int main()
{
	FILE* fpread = fopen("text2.txt", "r");
	char arr1[20] = { 0 };
	char arr2[20] = { 0 };
	char arr3[20] = { 0 };
	int year = 0;
	if (fpread == NULL)
	{
		perror("打开失败");
		return;
	}
	//将fpread中数据存放到arr1, arr2, arr3, year中
	fscanf(fpread, "%s %s %s %d", arr1, arr2, arr3, &year);
	printf("%s %s %s %d", arr1, arr2, arr3, year);
	fclose(fpread);
	fpread = NULL;
	return 0;
}

在命令台显示

fwrit函数使用

int main()
{
	int a = 10000;
	FILE* fpwrite = fopen("text3.txt", "wb");
	if (fpwrite == NULL)
	{
		perror("打开失败");
		return;
	}
	//将a以四个字节为单位存放一个元素到fpwrite中
	fwrite(&a, 4, 1, fpwrite);//二进制的方式写到文件中
	fclose(fpwrite);
	fpwrite = NULL;
	return 0;
}

 以二进制编辑器打开text3.txt

fread函数使用

int main()
{
	FILE* fpread = fopen("text3.txt", "rb");
	int a = 0;

	if (fpread == NULL)
	{
		perror("打开失败");
		return;
	}
	/* 读取并显示数据 */
	fread(&a, sizeof(a), 1, fpread);
	printf("%d\n", a);
	fclose(fpread);
	fpread = NULL;
	return(0);
}

 在命令台显示

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值