求指导!《C语言入门经典》案例12.1原封不动输入到cfree 5.0中,提示无法打开文件用于写入数据

C语言 码拜 5年前 (2016-05-16) 507次浏览
最近在学习Ivor Horton的《C语言入门经典》(第4版),将《第12章 处理文件》的 12.1的代码原封不动地输入到Cfree 5.0中,按F11提示没有错误,然后F5运行,在输入了几个字母后,提示”Error opening myfile.txt for wirting.Program terminated.“
请哪位高手帮忙解答下失败原因是什么呢?
代码如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
const int LENGTH=80;
int main(void)
{
char mystr[LENGTH];
int lstr=0;
int mychar = 0;
FILE *pfile = NULL;
char *filename = “D:\myfile.txt”;
printf(“\nEnter an interesting string of less than 80 characters:\n”);
fgets(mystr,LENGTH,stdin);
if(!(pfile=fopen(filename,”w”)));
{
printf(“Error opening %s for wrinting.Program terminated.”,filename);
exit(1);
}
lstr = strlen(mystr);
for(int i = lstr-1 ; i >= 0; i–)
fputc(mystr[i],pfile);

fclose(pfile);

if(!(pfile=fopen(filename,”r”)));
{
printf(“Error opening %s for reading.Program terminated.”,filename);
exit(2);
}

while((mychar=fgetc(pfile)) != EOF)
putchar(mychar);
putchar(“\n”);

fclose(pfile);
remove(filename);
return 0;
}

解决方案

40

你的if (!(pfile = fopen(filename, “w”)));最后多了一个分号
下面的if (!(pfile = fopen(filename, “r”)));这句也是

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明求指导!《C语言入门经典》案例12.1原封不动输入到cfree 5.0中,提示无法打开文件用于写入数据
喜欢 (0)
[1034331897@qq.com]
分享 (0)