请高手们指点指点
程序要求是:从键盘输入若干行字符(每行长度不等),输入后把它们存储到一磁盘文件。再从文件中读入这些数据,将其中小写字母转换成大些字母后再屏幕输出。下面是程序:#include<stdio.h>
main()
{
int i,flag;
char str[80],c;
FILE *fp;
fp=fopen("text","w");
flag=1;
while(flag==1)
{
printf("Input string:\n");
gets(str);
fprintf(fp,"%s",str);
printf("continue?");
c=getchar();
if((c=='N')||(c=='n'))
flag=0;
getchar();
}
fclose(fp);
fp=fopen("text","r");
while(fscanf(fp,"%s",str)!=EOF)
{
for(i=0;str[i]!='\0';i++)
if((str[i]>='a')&&(str[i]<='z'))
str[i]-=32;
printf("%s\n",str);
}
fclose(fp);
}
我的问题是:1.输入3行字符以后,输出的结果会显示在一行,为什么?如何在三行分别显示?
2.如果输入i am a student 则会分四行输出,如何处理这个问题?
这是谭浩强第二版那本书的文件那一张的最后一题。
望各位高手指正,小弟感激不尽!