当前位置: 代码迷 >> C语言 >> 文件打开问题
  详细解决方案

文件打开问题

热度:104   发布时间:2006-06-21 19:58:20.0
文件打开问题

大家好,请看看这个程序有哪些错误啊?
#include <stdio.h>
void main()
{
FILE *fp,ch;
char filename[10];
printf("Please input the name of file: ");
scanf("%s", filename);
if((fp=fopen(filename, "r")) == NULL)
{
printf("Cannot open the file.\n");
exit(0);
}
else
{
ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
}
fclose(fp);
}

搜索更多相关的解决方案: 文件  

----------------解决方案--------------------------------------------------------

#include <stdio.h>
void main()
{
FILE *fp; char ch;
char filename[40];//路径加文件名可能较长
printf("Please input the name of file: ");
scanf("%s",filename);
if((fp=fopen(filename,"r")) == NULL)
{
printf("Cannot open the file.\n");
exit(0);
}
else
{
ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
}
fclose(fp);
}


----------------解决方案--------------------------------------------------------
哎呀,太大意啦!
----------------解决方案--------------------------------------------------------
char filename[10];

modify:

char filename[FILENAME_MAX];



----------------解决方案--------------------------------------------------------
Please input the name of file: good.txt
Cannot open the file.
Press any key to continue...


这个程序是不是打开一个硬盘中已有的文件,然后在程序运行时把文件中的字符打印出来呢?我已经在硬盘同一文件中建立了”good.txt"文本文件,可是结果怎么还会是打不开呢?
----------------解决方案--------------------------------------------------------
不会啊,我试过了.
----------------解决方案--------------------------------------------------------
以下是引用langzi546在2006-6-22 18:33:34的发言:
Please input the name of file: good.txt
Cannot open the file.
Press any key to continue...


这个程序是不是打开一个硬盘中已有的文件,然后在程序运行时把文件中的字符打印出来呢?我已经在硬盘同一文件中建立了”good.txt"文本文件,可是结果怎么还会是打不开呢?

谈谈偶运行你程序的实况吧:
1。事先在c盘turboc2文件夹中做好了一个文本text1.c
2。为了浏览该文本内容,我运行你的程序
3。键盘输入 c:\turboc2\text2.c 注意这种场合不可c:\\turboc2\\text1.c
4。随后顺利地看到了文件内容。OK!


----------------解决方案--------------------------------------------------------
if((fp=fopen(filename,"r")) == NULL)
这个语句应该错了吧!!
----------------解决方案--------------------------------------------------------
以下是引用meng136138在2006-6-22 21:14:17的发言:
if((fp=fopen(filename,"r")) == NULL)
这个语句应该错了吧!!

这个语句没有错误!
----------------解决方案--------------------------------------------------------

以下是引用meng136138在2006-6-22 21:14:17的发言:
if((fp=fopen(filename,"r")) == NULL)
这个语句应该错了吧!!

这个语句当然并不错。但对于初学者理解起来费劲!
最好拆成两句:
fp=fopen(filename,"r");
if(fp == NULL)。。。。。。


----------------解决方案--------------------------------------------------------
  相关解决方案