0810学习笔记(文件函数)

重点回顾

        关于*p++与*(p++)

        

#include <stdio.h>

int main()
{
	int i=8;
	int a;
	a=(i++);
	i=i++;
	printf("%d\n",a);
	printf("%d\n",i);
	
	int b[]={1,33,3,4,5};
	int *p=b;
	printf("%d ",*p++);
	printf("%d ",*p);
	printf("%d ",*(p++));
	printf("%d ",*p);
}

结论:无区别

        判断文本内字符

#include <stdio.h>

int main()
{
	FILE *fp=NULL;
	char ch;
	int num=0;
	int a=0;
	int A=0;
	int els=0;
	int arr[50];
	printf("请输入追加的字符串:");
	scanf("%s",arr);
	fp=fopen("tst.txt","a");
	fprintf(fp,"%s",arr);
	fclose(fp);
	fp=fopen("tst.txt","r");
//	ch=fgetc(fp);
	fscanf(fp,"%c",&ch);
	while(ch!=EOF)
	{
		printf("%c",ch);
		if(ch>='0'&&ch<='9')
			num++;
		else if(ch>='a'&&ch<='z')
			a++;
		else if(ch>='A'&&ch<='Z')
			A++;
		else
			els++;
		ch=fgetc(fp);
	}
	fclose(fp);
	printf("\n");
	printf("num=%d  a=%d  A=%d  其他=%d",num,a,A,els);
	
	return 0;
}

  关于feof的返回值

#include <stdio.h>

int main()
{
	FILE *fp=NULL;
	char ch[20];
	fp=fopen("tst.txt","r");
	int i=0;
	while(!feof(fp))
	{
		ch[i]=fgetc(fp);
		printf("返回值%d  ",feof(fp));
		printf("%c\n",ch[i]);
		i++;
	}
	
	return 0;
}

        参数为文件指针,未到文件末尾返回0,其他返回非0

三种输入输出方式

#include <stdio.h>

int main()
{
	FILE *fp=NULL;
	fp=fopen("tst.txt","w+");
//	fputs("七里香",fp);
//	fprintf(fp,"%s","釜山不行"); 
	char a[]="九百九十九朵玫瑰";
	fwrite(a,2,8,fp);
	printf("光标所在的位置%d\n",ftell(fp));
	rewind(fp);
	printf("复位后光标所在的位置%d\n",ftell(fp));
	char ch[20];
//	fread(ch,2,8,fp);
	fgets(ch,"%s",fp);
//	fscanf(fp,"%s",ch);
	puts(ch); 
	printf("ferror的返回值%d\n",ferror(fp));
	fclose(fp);
	
	return 0;
}

        rewind函数  参数为文件指针,将光标移动到开始位置  

合并2个文本字符串并排序

        

#include <stdio.h>
#include <string.h>

int main()
{
	FILE *fp=NULL;
	fp=fopen("a.txt","w+");
	fprintf(fp,"%s","ifysaydcgfuy");
	char a[100];
	rewind(fp);
	fscanf(fp,"%s",a);
	fclose(fp);
	fp=fopen("b.txt","w+");
	fprintf(fp,"%s","ksdjvbskb");
	char b[30];
	rewind(fp);
	fscanf(fp,"%s",b);//fscanf(fp,"%s",a+j);  
	fclose(fp);
	int i,j,c;
	j=strlen(a);
	c=strlen(b);
	for(i=j;i<j+c;i++)
	{
		a[i]=b[i-j];
	}
	puts(a);
	char ch;
	int g;
	for(i=0;i<j+c;i++)
	{
		for(g=0;g<j+c-1;g++)
		{
			if(a[g]>a[g+1])
			{
				ch=a[g];
				a[g]=a[g+1];
				a[g+1]=ch;
			}
		}
	}
	puts(a);
	fp=fopen("c.txt","w");
	fprintf(fp,"%s",a);
	fclose(fp);
	
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值