我正在尝试创建一个由用户输入的值的表/组织列表,以放置在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)均已在程序中较早输入。 有些值是两位/三位数。
答案 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的字段中输出id
,resolved
和halpha
。
您可能还需要std::right
和std::left
,它们分别从左填充切换到右填充。与std::setw
不同,它们会更改所有后续操作的流(直到您再次对其进行更改)。
最后添加到表中,在打开文件时添加std::ios::app
file.open ("southPN.txt", std::ios::out | std::ios::app );