编写程序,功能为从键盘读入一组数据(10个整数),将其中的奇数和偶数分别保存在磁盘文件‘odd.c"和"even.c''中,并输出两个文件的内容。
通过大神的启发,本小白想出来啦!程序如下:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,n;
int a[10];
FILE *fo,*fe;
if((fo=fopen("odd.c","wb"))==NULL)
{printf("打开文件失败!!\n"); exit(1);}
if((fe=fopen("even.c","wb"))==NULL)
{printf("打开文件失败!!\n"); exit(1);}
printf("请输入十个整数:\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
if(a[i]%2==0)
fwrite(&a[i],sizeof(int),1,fe);
else
fwrite(&a[i],sizeof(int),1,fo);
}
fclose(fo);
fclose(fe);
if((fo=fopen("odd.c","rb"))==NULL)
{printf("打开文件失败!!\n"); exit(1);}
if((fe=fopen("even.c","rb"))==NULL)
{printf("打开文件失败!!\n"); exit(1);}
memset(a,0,10);
printf("odd.c文件中的内容为:\n");
n=fread(a,sizeof(int),10,fo);
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
memset(a,0,10);
printf("even.c文件中的内容为:\n");
n=fread(a,sizeof(int),10,fe);
for(i=0;i<n;i++)
printf("%d ",a[i]);
fclose(fo);
fclose(fe);
return 0;
}
另一种方法:
#include<stdio.h>
#include<stdlib.h>
int main()
{ int i;
int a[10];
char s[20];
FILE *fo,*fe;
if((fo=fopen("odd.c","w"))==NULL)
{printf("打开文件失败!!\n");exit(1);}
if((fe=fopen("even.c","w"))==NULL)
{printf("打开文件失败!!\n");exit(1);}
printf("请输入十个整数:\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
if(a[i]%2==0)
fprintf(fe,"%d ",a[i]);
else
fprintf(fo,"%d ",a[i]);
}
fclose(fo);
fclose(fe);
if((fo=fopen("odd.c","r"))==NULL)
{printf("打开文件失败!!\n");exit(1);}
if((fe=fopen("even.c","r"))==NULL)
{printf("打开文件失败!!\n");exit(1);}
fgets(s,20,fo);
printf("odd.c文件中的内容为:\n%s\n",s);
memset(s,0,20);
fgets(s,20,fe);
printf("even.c文件中的内容为:\n%s\n",s);
fclose(fo);
fclose(fe);
return 0;
}