2.为什么去掉fclose(fp); fp=fopen("al","r"); fgets(str,strlen(str)+1,fp);这三句后输出结果和原来不一样了。原来输入sdhj!输出为SDHJ。去掉这三句后输出变成SDHJ!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
FILE *fp;
char str[100];
int i=0;
if((fp=fopen("al","w"))==NULL)
{printf("can not open file\n");
exit(0);
}
printf("input a string:\n");
gets(str);
while(str[i]!='!')
{if(str[i]>='a'&&str[i]<='z')
str[i]=str[i]-32;
fputc(str[i],fp);
i++;}
fclose(fp);
fp=fopen("al","r");
fgets(str,strlen(str)+1,fp);
printf("%s\n",str);
fclose(fp);
getch();
}