例11.1
#include<stdio.h>
void main()
{
FILE * fp;
int i=0;
char n;
fp=fopen("F:\\text.txt","r");
while(!feof(fp))
{
fscanf(fp,"%c",&n);
printf("%c",n);
i++;
if(i==10){
printf("\n");
i=0;
}
}
fclose(fp);
}
例11.2
#include<stdio.h>
#include<stdlib.h>
void main()
{
FILE * fp;
int ch;
if(!(fp=fopen("F:\\text.txt","w")))
{
printf("Cannot open file d:\\text.txt!\n");
exit(0);
}
ch=getchar();
while(ch!=EOF)
{
fputc(ch,fp);
ch=getchar();
}
fclose(fp);
return;
}
例11.3
#include<stdio.h>
#include<stdlib.h>
void main()
{
FILE * fp;
int ch;
if(!(fp=fopen("F:\\text.txt","r")))
{
printf("cannot open F:\\text.txt");
exit(0);
}
ch=fgetc(fp);;
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
fclose(fp);
return ;
}
例11.4
#include<stdio.h>
#include<stdlib.h>
static void copyFile(FILE *source,FILE * intention);
static FILE * openFile(char *prompt,char * mode);
void main()
{
FILE * source,*intention;
printf("This program copies one file to another.\n");
source=openFile("source:","r");
intention=openFile("intention:","w");
copyFile(source,intention);
fclose(source);
fclose(intention);
return ;
}
static void copyFile(FILE *source,FILE * intention)
{
int ch;
while((ch=getc(source))!=EOF)
{
putc(ch,intention);
}
}
static FILE *openFile(char *prompt,char * mode)
{
char tmpFile[20];
FILE * reval = NULL;
while(1)
{
printf("%s",prompt);
gets(tmpFile);
reval=fopen(tmpFile,mode);
if(reval!=NULL)
break;
printf("Can't open the file \"%s\"\n",tmpFile);
exit(1);
}
return reval;
}
例11.5
#include<stdio.h>
#include<stdlib.h>
void main()
{
FILE *fp1;
int i,score;
if(!(fp1=fopen("f:\\text.txt","w"))){ //出错处理
printf("error");
exit(0);
}
for(i=0;i<10;i++) //输入成绩
{
scanf("%d",&score);
fprintf(fp1,"%5d",score);
}
fclose(fp1);
return ;
}
例11.6
#include<stdio.h>
#include<stdlib.h>
#define N 100
void main()
{
FILE * fp;
int i,n,s,a[N],x;
if(!(fp=fopen("F:\\text.txt","r")))
{
printf("cannot open F:\\text.txt!\n");
exit(0);
}
n=0;
while(!feof(fp)){
fscanf(fp,"%d",&x);
a[n]=x;
n++;
}
for(s=0,i=0;i<n;i++)
{
s+=a[i];
}
printf("s=%d\n",s);
fclose(fp);
}
例11.7
#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
void main()
{
FILE * fp;
int n1,n2,n3,n4,ch;
n1=n2=n3=n4=0;
if((fp=fopen("F:\\text.txt","r"))==NULL)
{
printf("cannot open F:\\text.txt!\n");
exit(0);
}
while(!feof(fp))
{
ch=fgetc(fp);
if(isalpha(ch))
n1++;
else if(isdigit(ch))
n2++;
else if(ch==' ')
n3++;
else
n4++;
}
fclose(fp);
printf("%d %d %d %d\n",n1,n2,n3,n4);
if(fp=fopen("F:\\text.txt","a")==NULL)
{
printf("Error!\n");
exit(0);
}
fprintf(fp,"//alpha number:%d\n",n1);
fprintf(fp,"//digit number:%d\n",n2);
fprintf(fp,"//space number:%d\n",n3);
fprintf(fp,"//other:%d\n",n4);
fclose(fp);
}
例11.8
#include<stdio.h>
#include<stdlib.h>
struct stu{
char numb[9];
int s[3];
float ave;
};
void main()
{
FILE * f1,* f2;
struct stu a,b;
int flag=1;
if((f1=fopen("aa.txt","r"))==NULL)
{
printf("Error!\n");
exit(0);
}
if((f2=fopen("bb.txt","w"))==NULL)
{
printf("Error!\n");
exit(0);
}
scanf("%s%d%d%d",a.numb,&a.s[0],&a.s[1],&a.s[2]);
a.ave=(a.s[1]+a.s[2]+a.s[0])/3.0;
while(fscanf(f1,"%8s%4d%4d%4d%6f\n",b.numb,&b.s[0],&b.s[1],&b.s[2],&b.ave)
!=EOF){
if(a.ave>b.ave&&flag){
fprintf(f2,"%8s%4d%4d%4d%6.1f\n",a.numb,a.s[0],a.s[1],a.s[2],a.ave);
flag = 0;
}
fprintf(f2,"%8s%4d%4d%4d%6.1f\n",b.numb,b.s[0],b.s[1],b.s[2],b.ave);
}
if(flag)
fprintf(f2,"%8s%4d%4d%4d%6.1f\n",a.numb,a.s[0],a.s[1],a.s[2],a.ave);
fclose(f1);
fclose(f2);
remove("aa.txt");
rename("bb.txt","aa.txt");
}