背景说明
最近在研究输出一种文件格式,其实是输出字符串到txt文件,但是该文件格式比较成熟,对各个输出的记录都有确定的格式要求,这些格式让我看的很是头疼,比如Format(80A1),Format(3I10,3E13.5),Format(I10,315,2(1X,20A1))这都是什么和什么。。。
解决这个问题的思路:首先弄明白这些格式的意思,然后在c++中选择相应的函数输出这些格式
Fortran语言的格式化函数Format()
通过将这些格式形式输入到百度,终于搞明白这个格式说明是用Fortran语言规定的格式。
Fortran语言中的Format函数用法:
[n]FC[+][-][width]
字段 含义
n 代表格式控制符的重复次数,默认为1次
FC Format Codes:格式控制符,详细说明见表1-3及例子
+ 在输出的数字前面加“+”前缀符号,仅数字格式化输出有效
- 控制字符串和数字的输出为左对齐,默认输出是右对齐
- width 输出数字或字符的宽度
其中的FC控制符通过查看“星星分享”和“wanwan”同学的新浪微博,搞清楚了。格式不过度说明,在这里贴出星星分享微博中的图片,一目了然。
显然,查表得到了Format(80A1)的解释:以1位的位宽输出字符串,输出80个字符
Format(3I10,3E13.5):输出6个数字,其中前三个为10位宽的int型整数,后三个为13位的指数类型的浮点数,小数点后占5个字符。
输出例子为:
2 12 1 0.00000E+00 7.81250E-03 0.00000E+00
C++语言的字符串格式化函数Format()
好了废话不多说,查到了c++中Format()的用法,下面简单针对我的问题总结一下
函数说明
Format是CString类的成员函数,可通过格式操作是任意