double数据写进文件中的格式问题?

crossingxb 2005-12-23 06:58:00
我现在有几个double数据,比如为c1=1.00000, c2=2.30000, c3=254.210000,要写进一个文件data.dat
差不多这样:
ofstream outFile("data.dat");
outFile<<c1<<'\n'<<c2<<'\n'<<c3<<endl;

但是我在文件data.dat中的内容是:
1
2.3
254.21

我想指定小数位数为六位,即:
1.000000
2.300000
254.21000

应该怎么操作呢?谢谢高手来解答

...全文
124 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
crossingxb 2005-12-25
  • 打赏
  • 举报
回复
我认为上面的朋友都没回答对。
precision不是outFile(ofstream)的成员函数,对于cout则是可以的。
另外,fprintf应该可以,但是我要问的是c++里面的文件的流的格式操作。

最后,我还是用了visual c++里的CString的format
vollin 2005-12-24
  • 打赏
  • 举报
回复
用fprintf的话,只需要
fprintf(fp,"%.6f",c1);
用流的话
以cout为例:
cout.flags(ios::fixed);
cout.precision(6);
cout<<c1<<endl;
我啃 2005-12-24
  • 打赏
  • 举报
回复
流的precision()开关用于控制输出的FLOAT位数
Rick_ang 2005-12-23
  • 打赏
  • 举报
回复
学到东西了..MARK下
双杯献酒 2005-12-23
  • 打赏
  • 举报
回复
忘记还要 setf 了. ;(
双杯献酒 2005-12-23
  • 打赏
  • 举报
回复
不知道怎么指定流的格式?

outFile.precision( 9 );
outFile<< fixed << 123.456 << endl;

看看
fangrk 2005-12-23
  • 打赏
  • 举报
回复
outFile.precision(6);
outFile.setf(ios::fixed,ios::floatfield);
zhousqy 2005-12-23
  • 打赏
  • 举报
回复
printf("%g", c1);

64,649

社区成员

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

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