例子:从键盘输入若干行字符(每行长度不等),输入后把它们存储到一磁盘文件中。再从该文件中读入这些数据,将其中小写字母转换成大写字母后再显示屏上输出。
有两种方法
1.使用feof()函数
1 #include<stdio.h>
2 #include<stdlib.h>
3 #include<string.h>
4
5 int main(){ 6 setbuf(stdout,NULL); 7 char s[20]; 8 char choice='y'; 9 FILE *fp; 10
11 if((fp=fopen("string.txt","w+"))==NULL) 12 { 13 printf("cannot open the file.\n"); 14 exit(0); 15 } 16
17 while(choice=='y') 18 { 19 printf("Input a line:\n"); 20 gets(s); 21 fprintf(fp,"%s\r\n",s); 22 printf("Again?"); 23 scanf("%c",&choice); 24 fflush(stdin); 25 } 26
27 printf("print the data in the file.\n"); 28 rewind(fp); 29 fscanf(fp,"%s",s); 30 while(!feof(fp)) 31 { 32 puts(strupr(s)); 33 fscanf(fp,"%s",s); 34 } 35 fclose(fp); 36 return 0; 37 }
2.使用文件结束符EOF
1 while(fscanf(fp,"%s",s)!=EOF) 2 { 3 puts(strupr(s)); 4 }