当前位置: 代码迷 >> C语言 >> [求助]关于读文件
  详细解决方案

[求助]关于读文件

热度:160   发布时间:2007-09-30 00:45:31.0
[求助]关于读文件

第一个没问题,可以通过编译(TC2.0),也能正确读"d:\1.txt"的文件
第二个有点问题,可以编译,但无法读取输入的文件名.
提示:null pointer assignment
输入的是d:\1.txt,当然,前提是d:\1.txt存在.

如果输入d:\\1.txt,则打开错误
如何才能把第二个也做好?

小弟刚开始学C的,我已经想了蛮久了,不明白.指点一下是什么回事,谢谢了啦!!!

#include<stdio.h>
main()
{
FILE *fp;
char ch;
if((fp=fopen("d:\\1.txt","rt"))==NULL)
{
printf("Can not open file strike any key exit!");
getch();
exit(1);
}

ch=fgetc(fp);
while (ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
fclose(fp);
}


#include<stdio.h>

main()
{
char fname[80];
char ch;
FILE *fp;

printf("\nPlease input the file path:\n");
gets(fname);

if(fp=(fopen(fname,"r"))==NULL)
{
printf("file %s can't opened\n",fname);
exit(0);
}

ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}

fclose(fp);
}

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

----------------解决方案--------------------------------------------------------
是不是\\的问题?
----------------解决方案--------------------------------------------------------
回复:(meteor57)[求助]关于读文件

如我所说

输入:d:\1.txt 显示:null pointer assignment

输入d:\\1.txt 显示:file d:\\1.txt can't opened!
请大家指点一下,到底是程序有误,还是我输入有问题?

[此贴子已经被作者于2007-9-30 1:01:24编辑过]


----------------解决方案--------------------------------------------------------
我想是gets(fname);这句的问题.
输入之后,指针指向了d:\1.txt 的后边.你看看是不是这个问题.
----------------解决方案--------------------------------------------------------
gets(fname);是输入文件名.那还要加什么东东,才能正确打开输入的文件名?

我找过谭的C也没有类似例题.要么就是打开指定文件(在源码中已经写好路径,就像上面的第一个),要么就是输入文件名,再输入文件内容,最后显示.都不太一样啊.急切想知道到底应该怎么做啊.


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

浅色的回忆,谢谢你了.我知道是怎么回事了

#include<stdio.h>

main()
{
char fname[80];
char ch;
FILE *fp;

printf("\nPlease input the file path:\n");
gets(fname);

if((fp=fopen(fname,"r"))==NULL) /*问题出在这,晕.括号打错了.看来以后得小心才行啊.*/
{
printf("file %s can't opened\n",fname);
exit(0);
}

ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}

fclose(fp);
}


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