在txt文件中创建表格/组织列表

时间:2019-06-18 06:25:33

标签: c++ text-files spacing

我正在尝试创建一个由用户输入的值的表/组织列表,以放置在txt文件中。目前,我已双击选项卡以便正确地分隔数字,如下所示。

是否有保持间隔一致的方法,并且是否有必要让程序在再次开始运行时继续表(如果程序停止,则保存文件,但是再次启动时,它擦除txt文件)?

std::fstream file;

file.open ("southPN.txt", std::ios::out | std::ios::in );

file << id << "     " << resolved << "      " << halpha << "        " 
<< hbeta << "     " << o4959 << "     " << o5007 << "     " << n6548 << 
"     " << n6583 << "     " << s6716 << "     " << s6731 << "\n\n" ;

所有值(id-s6731)均已在程序中较早输入。 有些值是两位/三位数。

1 个答案:

答案 0 :(得分:2)

您需要研究I / O操纵器,特别是std::setw,它设置下一个输出操作的宽度。

例如

#include <iostream>
#include <iomanip>
using std::setw;

file << setw(16) << id << setw(12) << resolved << setw(12) << halpha << ...

分别在宽度为16、12和12的字段中输出idresolvedhalpha

您可能还需要std::rightstd::left,它们分别从左填充切换到右填充。与std::setw不同,它们会更改所有后续操作的流(直到您再次对其进行更改)。

最后添加到表中,在打开文件时添加std::ios::app

file.open ("southPN.txt", std::ios::out | std::ios::app );