关于文件操作的问题

bysdtd 2007-04-11 07:11:37
按科学计数向文件输出双字数据,要求:
1.个位是零
2.整个数据长度24,
3.小数点后15个有效数字
4.右对齐
5.输出的数据中"E"用"D"表示
这种格式叫做D24.15
例如:
349200表示为:
0.349200000000000D+06
123456789012345678901234//表示位置的数字

请教各位高手啦!
...全文
209 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jixingzhong 2007-04-12
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>

int main()
{
double d=349200.0;
int n=1;
FILE *fp=fopen("test.txt", "w");

while(d>1.0){n++; d/=10;}
fprintf(fp, "%-.15lfD+%02d", d, n);
fclose(fp);

system("pause");
return 0;
}
jixingzhong 2007-04-12
  • 打赏
  • 举报
回复
fprintf(fp, "%-24.15lE", num);

然后把 E 字符覆盖一下 ~
bysdtd 2007-04-12
  • 打赏
  • 举报
回复
看了回帖有两个疑问,1.printf E24.15的语法是什么?2.覆盖字符的操作怎么实现?
mathe 2007-04-12
  • 打赏
  • 举报
回复
#include <math.h>

int n;
double man=exprf(input, &n);
int digit=0,mul=1,m=n>=0?n:-n;
while(mul<m){digit++;mul*=10;}//Get digits of n
for(m=0;m<5-digit;m++)printf(" ");
printf("%.15fD%+n",man,n);
jixingzhong 2007-04-12
  • 打赏
  • 举报
回复
格式控制即可~

然后覆盖原来的 E字符为D字符即可 ~
taodm 2007-04-12
  • 打赏
  • 举报
回复
printf E24.15会吗?
不想低调 2007-04-11
  • 打赏
  • 举报
回复
mark

65,213

社区成员

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

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