我使用了ifstream打开文件,文件名保存在一个CString中,打开不同文件时有时会出错,但是文件打开都没报错,就是数据读不出来,这是为什么?
以下是代码:
CString PathName;
PathName = L"C:\\data\\introduce.txt";
std::ifstream InFile;
InFile.open(PathName);
int Number =0;
InFile>>Number;
当打开文件C:\\data\\introduce.txt时就正常,当打开C:\\data\\O.txt 时数据就写不入Number中。
运行时没有报错
以下是代码:
CString PathName;
PathName = L"C:\\data\\introduce.txt";
std::ifstream InFile;
InFile.open(PathName);
int Number =0;
InFile>>Number;
当打开文件C:\\data\\introduce.txt时就正常,当打开C:\\data\\O.txt 时数据就写不入Number中。
运行时没有报错
解决方案 »
- 图例中如何切分?
- 请教串口编程
- 奇怪的嵌入IE的MFC程序定期弹出问题
- 使用对话框资源(IDD_DIALOG_PASSWORD),改类名出现的问题?
- GDI+能改变图片尺寸吗?
- 窗口中有CListCtrl控件,如何當窗口大小變儗時,CListCtrl控件的大小也變化
- 关于handle类和NULL值的问题
- 紧急求助: 如何在VC中实现,程序只能在一台机子上运行一次,如果同时打开两个,则报该程序已经运行
- 怎样判断不同的盘符是否对应相同的物理驱动器?
- 如何捕捉屏幕上的线条做成虚拟分割窗口?
- ◇◆◇ 我来散10分,第五个人进来后结贴 ◇◆◇
- ie播放控件在初始化的时候 IE不能响应任何消息 等到加载完成才能响应
试试看
if(InFile.is_open())
{
.....
}
打开后判断一下
若要用同一个ifstream对象
多次打开不同的文件,
则在:
InFile.open(PathName);
if(InFile.is_open())
{
InFile.clear();//这句加上,清除以前可能出现过的错误。
.......
}
判断一下:
InFile>> Number;
if(!InFile.good())//判断是否正常
cout<<"not good"<<endl;
cout<<Number<<endl;