有关文件的疑惑
我最近正在狂做c笔试题,有一部分做错的题,特地摘录出来,请高手们答疑解惑,谢谢啦!1、文件类型题
a、以下程序的功能是:从键盘输入一个字符串,把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来。请填空。
#include<stdio.h>
void main()
{
FILE *fp;
char str[100]; int i=0;
if(fp=fopen("test.txt", 请填空)==NULL)
{printf("can’t open this file. \n");exit(0);}
printf(" “input astring:\n"); gest(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("test.txt",”r”);
fgets(str,100,fp);
printf("%s\n",str);
fclose(fp);
}
因为其余的空我都填对了,只有一个空错,就把那个空用下划线标出来了。那个空我原先填的是"r",但答案给的是"w",不知我哪里分析错了?键盘输入一个字符串用的不就是"r"吗?
B、下面程序把从终端读入的文本用@作为文本结束标志复制到一个名为bi.dat的新文件中,请填空。
#include<stdio.h>
FILE *fp;
void main( )
{
char ch;
if (fp=fopen("bi.dat", 请填空)==NULL) exit(0);
while(ch=getchar()!='@') fputc(ch,fp);
fclose(fp);
}
那个空我填的是"w",但答案给的是"r",复制到一个名为bi.dat的新文件中,那就是向文件输出数据,那不就应该用"w"吗?