我对已知格式化文件中的数据排列有疑问。它有点复杂,所以我希望我做对了。这是个问题:
我对几个家庭进行了测量,他们的数据每天都在变化。 我的目标是将所有测量结果(用c ++)写入文件,但是有条理且清晰。
这是我需要的格式:
several files- file name: family_name
每个文件都包含:
family member 1:
day1 , day2 , day3 ...
weight:
height:
blood pressure:
etc...
family member 2:
day1 , day2 , day3 ...
weight:
height:
blood pressure:
etc...
family member 3:
day1 , day2 , day3 ...
weight:
height:
blood pressure:
etc...
是否有某种众所周知的c ++库,我可以很容易地(在运行时):
1. make the table (number of rows and columns)
2. give title for every column and every row
3. insert data to specific cell
4. save it as arranged file
感谢。
答案 0 :(得分:3)
除非您想重新实现类似于记录的文件访问的COBOL,否则我认为您最好将整个文件读入内部数据表示,插入或更新有问题的数据,然后重写整个文件。
我看到了两个基本选项。
使用序列化库以生成未格式化为简单文本的输出,例如作为Json或XML。也许助力可以帮助。
优势:使用适用于开放标准格式(电子表格,数据库,编辑器)的各种工具的辅助功能。轻松生成各种输出格式,如普通的Ascii,HTML,PDF等。
缺点:直接人类可读性有限(但如果序列化为上述文本格式,则仍然可以。)
滚动您自己的序列化。简单数据并不难。为每个"记录"创建输出和输入例程。及其"子记录"使用标准iostream
工具,或者可能更简单,printf
/ scanf
。
优势:完美的人类可读性,完整的格式控制。
缺点:使用电子表格和数据库等工具无法访问(可能是最大的长期劣势,它会回来并咬你)。也许还有更多的工作要做。每种输出格式都需要完全重写序列化功能。