作者pog83 (人见人爱,车撞爆胎)
看板C_and_CPP
标题[问题] C++的档案输入输出
时间Sun Aug 30 15:22:43 2009
因为专题需要写了一个程式
从一个档案读取一组数据,然後在另一个文字党输出数据结果
结果档案只会显示最後一组数据所产生的结果,应该前几组结果都被档案覆盖了
我用我上课所学,所独得的资料已经尽力了,解不出来
作业时间逼近,我要求救!!...
ofstream file(outfile);
file.open(outfile,ios::app);
if(!file) {
cout << "档案开启错误!";
return;
}
这段是写在函式里面,outfile是从函式外读取的档案路径
有这一段时file.open(outfile,ios::ate);会出现档案开启错误
没有的话又只会输出最後一组数的结果
而且,如果我想要我的结果不被覆盖file.open(outfile,ios::out || ios::app);是否可行?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.229.31.233
1F:推 su31o4gj83:看起来像是 ofstream file(outfile); 就把 io 物件建立 08/30 16:20
2F:→ su31o4gj83:建立好了, 所以再执行 file.open(outfile,ios::app); 08/30 16:20
3F:→ su31o4gj83:就出现错误讯息了 08/30 16:21
4F:→ su31o4gj83:而 ofstream file(outfile); 预设值是 ios::out 08/30 16:22
5F:→ su31o4gj83:所以每次输出到档案就会覆盖过去 08/30 16:23
6F:→ su31o4gj83:看你要用 ofstream file(outfile, ios::app); 08/30 16:24
7F:→ su31o4gj83:或是 ofstream file; file.open(outfile,ios::app); 08/30 16:25
8F:→ su31o4gj83:不太确定是不是这个问题, 你试试看 08/30 16:25
9F:→ pog83:第二个方法,宣告档案输入就要给路径,没给路径就会出现错误 08/30 16:30
10F:→ pog83:第一个方法是可行的!谢谢!! 我可以顺便问个问题吗? 08/30 16:31
11F:→ pog83:读取数据的时候,为了方便我都用浮点数,可是计算最後结果 08/30 16:31
12F:→ pog83:有些我不希望出现小数点以後,有方法可以转换doublb和int吗? 08/30 16:32
13F:推 su31o4gj83:资料形态转换可以加上 (double) or (int) 08/30 16:41
14F:→ su31o4gj83:若想要输出格式化的字串, 可以用 sprintf 08/30 16:47
15F:→ su31o4gj83:例如你不想要小数点就用 "%.0f" 08/30 16:49