C语言——文件操作N0.11

一、图解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


二、文件的操作

文件型指针变量:

FILE *fp;

fp是一个指向FILE类型结构体的指针变量。

2.1、文件的打开(fopen函数)

函数调用:

FILE *fp;
fp = fopen(文件名,使用文件方式);

注意:
在这里插入图片描述

对于文件使用方式有以下几点说明:
在这里插入图片描述
在这里插入图片描述

#打开文件“w”

#include<stdio.h>
#include<stdlib.h>

void main()
{
		FILE *fp;
		if(!(fp=fopen("D:\\VC\\实验文件.txt","w")))  //注意要双“\”
		{
		    printf("Can not open D:\\VC\\实验文件.txt\n");
			system("pause");
		}
		else{
		    printf("Open success!\n");
		}
}

2.2、文件的关闭(fclose函数)

函数调用:

fclose(文件指针);

函数功能:
在这里插入图片描述

2.2.1、字符输入fputc()

fgetc()函数调用:

fputc(ch,fg);

在这里插入图片描述
在这里插入图片描述

#include<stdio.h>
#include<stdlib.h>

void main()
{
		FILE *fp;
		char ch, filename[20];
		
		printf("Please input the filename you want to write:");
		scanf("%s",filename);

		if(!(fp=fopen(filename,"wt+")))  
		{
		    printf("Can not open ");
			exit(0);
		}
		printf("Please input the sentences you want to write:");
		//scanf会把结束符放在缓冲区,实际回车没有被消除
		ch = getchar;   //目的是:吸收回车
		ch = getchar;
		while( ch != EOF){  //EOF = ctrl + z (关闭标准)
			fputc(ch,fp);
			ch = getchar();
		}
		fclose(fp);
}

2.2.12、字符输出fgetc()

在这里插入图片描述

	//其他代码相同
	while( ch != EOF){  //EOF = ctrl + z (关闭标准)
			ch = fget(fg);
			putchar(ch);
		}
		fclose(fp);

在这里插入图片描述
例题:图片文件合成器

#include<stdio.h>
#include<stdlib.h>

void mian()
{
	FILE *f_pic,*f_file,*f_finish;
	char ch,pic_name[20],file_name[20],finish_name[20];

	printf("请输入需要合成的图片和文件的名称:\n");
	printf("图片:");
	scanf("%s",pic_name);
	printf("文件:");
	scanf("%s",file_name);
	printf("生成为:");
	scanf("%s",finish_name);

	if( !(f_pic = fopen(pic_name,"rb"))) //rb 二进制
	{
	    printf("Cannot open the picture %s:",pic_name);
	    return;
	}
	if( !(f_file = fopen(file_name,"rb")))//解析 如果访问失败则返回0,所以!0,就是真 才能执行
	{
	    printf("Cannot open the file %s:",pic_name);
	    return;
	}
	if( !(f_finish = fopen(finish_name,"wb")))
	{
	    printf("Cannot open the file %s:",pic_name);
	    return;
	}
	
	while(!(feof(f_pic)))//测试是否是文件的结尾
	{
		ch = fgetc(f_pic);
		fputc(ch,f_finish);
	}
	fclose(f_pic);

	while(!(feof(f_file)))//测试是否是文件的结尾
	{
		ch = fgetc(f_file);
		fputc(ch,f_finish);
	}
	fclose(f_file);
    fclose(f_finish);

	system("pause");
}

三、字符串读写函数:fgets()和fputs()

fgets函数:

函数调用形式:

fgets(str,n,fp);

在这里插入图片描述

fputs函数:

函数调用形式:

fputs("FISHC",fp);

在这里插入图片描述

#include<stdio.h>
#include<stdlib.h>
#define LEM 11	
void main()
{
		FILE *fp;
		char buffer[LEN];
		if(!(fp=fopen("D:\\VC\\实验文件.txt","rt")))  
		{
		    printf("\nCan not open D:\\VC\\实验文件.txt\n");
			system("pause");
		}
		fgets(buffer,LEN.fp);
		printf("%s\n",buffer);
		
		fclose(fp);
}

四、数据块读写函数:fread()和fwrite()

函数调用形式:

fread(buffer,size,count,fp)fwrite(buffer,size,count,fp)

参数说明:
在这里插入图片描述
例题:
在这里插入图片描述
在这里插入图片描述


五、格式化读写函数:fprintf()和fscanf()

函数调用形式:

fprintf(文件指针,格式字符串,输出链表)fscanf(文件指针,格式字符串,输入链表)

函数功能:从磁盘文件中按格式读入或输出字符。


六、顺序读写和随机读写


随机独写需要用的一个函数:fseek函数(一般用于二进制文件)
函数调用形式:

fseek(文件类型指针,位移量,起始点)

函数功能:改变文件的位置指针
起始点:
在这里插入图片描述
位移量:
在这里插入图片描述

在这里插入图片描述

因为是long型文件,所以位移量+L

over!

下课!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值