【帮帮我啊!】读取文件程序总是出错!

kgbcn 2007-06-25 12:26:39
本人编写了一个读取文本文件内容的练习小程序,代码如下:
#include "iostream.h"
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
void main()
{

FILE *fp;
fp=NULL;
if((fp=fopen("c:\\data.txt file","r"))==NULL)
cout<<"文件读取正确";
else
exit(0);
char ch=fgetc(fp);
while(ch!=EOF) //用来循环读取文件的内容。
{
putchar(ch);
ch=fgetc(fp);
}
fclose(fp);
}

可以编译通过,可是程序一运行,就出现如下错误:

Debug Assertion Failed!

Program: c:\1.exe
File:fgetc.c
Line:41

Expression:stream!=NULL

For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts.

(Press Retry to debug the application)

这到底是那里出错了啊?
帮帮我啊?
...全文
402 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
kgbcn 2007-06-25
  • 打赏
  • 举报
回复
到底代码错在那里啊?
天启老张 2007-06-25
  • 打赏
  • 举报
回复
可以个改用文件流读入,现在的用法是C的读法
ayw215 2007-06-25
  • 打赏
  • 举报
回复
注释调iostream头文件
使用printf
kgbcn 2007-06-25
  • 打赏
  • 举报
回复
那一行打错了是:

if((fp=fopen("c:\\data.txt file","r"))==NULL)
cout<<"文件读取出错";
else
cout<<"文件读取正确";
mymtom 2007-06-25
  • 打赏
  • 举报
回复
if((fp=fopen("c:\\data.txt file","r"))==NULL)
还"读取文件正确"?
wf520pb 2007-06-25
  • 打赏
  • 举报
回复
int __cdecl fgetc (
REG1 FILE *stream
)
{
int retval;

_ASSERTE(stream != NULL); //stream不能为NULL

_lock_str(stream);
retval = _getc_lk(stream);
_unlock_str(stream);

return(retval);
}
------------------------------------------------
if((fp=fopen("c:\\data.txt file","r"))==NULL)
------------------------------------------------
stream不应该为空,为空时应该是退出,你搞反了。。。
改为!=NULL,那个文件路径你自己改正确。。。
kgbcn 2007-06-25
  • 打赏
  • 举报
回复
怎么没有人回啊?
错误的提示是什么意思啊?
kgbcn 2007-06-25
  • 打赏
  • 举报
回复
但为什么当程序读取错误是,会出现那样的错误呢?
kgbcn 2007-06-25
  • 打赏
  • 举报
回复
想知道

Debug Assertion Failed!

Program: c:\1.exe
File:fgetc.c
Line:41

Expression:stream!=NULL

For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts.

(Press Retry to debug the application)

这些话是什么意思啊?
Inhibitory 2007-06-25
  • 打赏
  • 举报
回复
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <conio.h>

int main()
{

FILE *fp;
fp=NULL;
if((fp=fopen("c:\\data.txt","r"))!=NULL) // 修改过这里
cout<<"文件读取正确";
else
exit(0);
char ch=fgetc(fp);
while(ch!=EOF) //用来循环读取文件的内容。
{
putchar(ch);
ch=fgetc(fp);
}
fclose(fp);

return 0;
}

这样可以正常读取文件,那个debug错误,可能与你的编程环境有关.

64,652

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧