[问题] fstream档案莫名开启失败

楼主: xxxx5801   2015-08-01 15:56:17
最近在VS2012上作C++档案读取的练习, 语法方面没有问题
但就是预期的结果跑不出来, 以下是程式码:
#include"stdafx.h"
#include<iostream>
#include<fstream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
char chtem;
fstream io("d:\\123.txt", ios::in | ios::out);
if (!io){
cout << "File open failed!\n";
}
else{
cout << "File open successfully!\n";
while (io.get(chtem)){
cout << chtem;
}
}
io.close();
system("pause");
return 0;
}
输出结果: File open failed!
作为测试的123.txt里面就只有几个英文字母而已
IDE也没有任何错误讯息, 但io的值始终等于0
明明之前用C的fopen函数都OK, 但用C++来写就有问题
有人跟我遇到同样的问题吗?
作者: s25g5d4 (function(){})()   2015-08-01 19:48:00
你需要 ios::trunc
作者: andy410061 (高坂桐乃は俺の嫁)   2015-08-02 11:38:00
楼上那样不是会把档案清空吗
作者: scott260202 (Cake)   2015-08-02 16:59:00
...............
作者: Killercat (杀人猫™)   2015-08-02 17:51:00
这算fstream的致命问题,你其实很难搞懂为什么失败 XD有兴趣的话顺手查察strerror(errno)怎么运作的他在fstream失败的时候一样会记录下错误原因这远比单纯看io是不是nulptr来的好得多
作者: s25g5d4 (function(){})()   2015-08-04 13:21:00
我没有仔细看内文 以为是要建立新档案 Orz
作者: louisman (匈奴将领)   2015-08-09 04:06:00
.........

Links booklink

Contact Us: admin [ a t ] ucptt.com