首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-02-05 
【帮帮我啊!】读取文件程序总是出错!本人编写了一个读取文本文件内容的练习小程序,代码如下:#includeiostre

【帮帮我啊!】读取文件程序总是出错!
本人编写了一个读取文本文件内容的练习小程序,代码如下:
#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)

这到底是那里出错了啊?
帮帮我啊?

[解决办法]
if((fp=fopen( "c:\\data.txt file ", "r "))==NULL)
还 "读取文件正确 "?
[解决办法]
注释调iostream头文件
使用printf
[解决办法]
可以个改用文件流读入,现在的用法是C的读法
[解决办法]
#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错误,可能与你的编程环境有关.
[解决办法]
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,那个文件路径你自己改正确。。。

热点排行