C语言文件章节问题,没有可以看出问题出在哪吗??

2025-01-07 08:01:40
推荐回答(3个)
回答1:

fp=fopen("f1","w");
这个f1要换成具体的文件名的全路径,比如C盘下面的Test.txt,那么就改为
fp=fopen("C:\\Test.txt","w");

回答2:

在注释中标注错误。下面是更正后的代码

#include
int main()//修改成具备返回值
{
int i;
char ch;
char c[100];
char str1[10]="i love lw";
char str2[15]="i love LW";
FILE *fp;
fp=fopen("f1","w");

/*增加判断,文件是否正确打开
只有正确,才能执行下一步操作.
以下同理
*/
if(fp == NULL)
{
printf("open error!\n");
return 1;
}

//for(i=0;fgetc(fp)!=EOF;i++)
/*
应该是写文件,所以循环条件是字符串长度,不应该是读取到文件末尾
注:用"w"创建的文件里面本身就是空的.
下面f2同理
*/
for(i=0;i<10;i++)
fputc(str1[i],fp);
fclose(fp);

fp=fopen("f2","w");
if(fp == NULL)
{
printf("open error!\n");
return 1;
}

//for(i=0;fgetc(fp)!=EOF;i++)
for(i=0;i<15;i++)
fputc(str2[i],fp);
fclose(fp);

fp=fopen("f1","r");
if(fp == NULL)
{
printf("open error!\n");
return 1;
}

printf("file1:\n");

//for(i=0;(ch=fgetc(fp)!=EOF);i++)
/*
等号(=)优先级低于不等于(!=),要有括号
以下同理
*/
for(i=0;((ch=fgetc(fp))!=EOF);i++)
{
c[i]=ch;

}
c[i] = '\0';//字符串结束标志
puts(c);
fclose(fp);

fp=fopen("f2","r");
if(fp == NULL)
{
printf("open error!\n");
return 1;
}

printf("\nfile2:\n");
for(i=0;((ch=fgetc(fp))!=EOF);i++)//i从0开始
c[i]=ch;
c[i] = '\0';//字符串结束标志
puts(c);

fclose(fp);

return 0;
}

回答3:

LW是谁,我帮你改