大家好,我是一童,今天分享用字符串读写文件,虽然关于文件的读写操作基本上没什么鸟用,因为现在大都使用的是数据库存储数据,但还是需要了解一下下滴;
- 函数原型
char fgets(char str,int n,FILEfp);//从文件中读一个字符串;(fp所指向的文件中读取长度n-1的字符串放入字符数组str中)
int fputs(char str,FILE*fp);//将字符数组str写入fp所指向的文件中 - 代码
<1> 将排序后的三个字符串写入文件
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 3
#define M 100
void main()
{
FILE*fp;
int i,j,n=3;
char a[N][M],t[M],ch,filename[N];
printf("输入字符串:\n");
for(i=0;i<n;i++)
gets(a[i]);
//scanf("%s",a[i]);
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
if(strcmp(a[i],a[j])>0)
{
strcpy(t,a[j]);
strcpy(a[j],a[i]);
strcpy(a[i],t);
}
}
printf("输入要打开的文件名:");
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{
printf("无法打开!!");
exit(0);
}
printf("\n 排序后:\n");
for(i=0;i<n;i++)
{
fputs(a[i],fp);
fputs("\n",fp);
printf("%s\n",a[i]);
}
fclose(fp);
}
<2>复制文件
#include <stdio.h>//复制文件并显示
#include <stdlib.h>
#include <string.h>
#define N 3
#define M 10
void main()
{
FILE*fp1,*fp2;
char s1[N][M],s2[N][M],filename1[M],filename2[M];
int i=0;
printf("输入要打开的文件:");
scanf("%s",filename1);
if((fp1=fopen(filename1,"r"))==NULL)
{
printf("无此文件!\n");
exit(0);
}
printf("输入要写入的文件名: ");
scanf("%s",filename2);
if((fp2=fopen(filename2,"w"))==NULL)
{
printf("无法打开此文件!!");
exit(0);
}
while(fgets(s1[i],M,fp1)!=NULL)
{
strcpy(s2[i],s1[i]);
fputs(s2[i],fp2);
printf("%s",s2[i]);
i++;
}
fclose(fp1);
fclose(fp2);
printf("\n");
}
- 截图
若有疑问,欢迎留言!!