写入以空格分隔的2列文本,而不在c++中指定分隔符



我正在使用C++98。这是我的密码。它从Qt4表单的lineEdit中获取文本

strcpy(Name,ui->lineEdit->setText(QString::fromStdString(Name)) );
strcpy(Class,ui->lineEdit_1->setText(QString::fromStdString(Class)));
strcpy(Grade,ui->lineEdit_2->setText(QString::fromStdString(Grade)));
std::ofstream myfile;
myfile.open(mypath,std::fstream::in | std::fstream::out );
myfile<<Name<<"t"<<"Name"<<"n";
myfile<<Class<<"t"<<"Class"<<"n";
myfile<<Grade<<"t"<<"Grade"<<"n";

这里是两列空格分隔的文本文件sample.conf:

AA.    Name
BB     Class
CC     Grade

它正在正确更新文件

我的问题是,是否有任何方法可以在不使用分隔符的情况下写入上述文本文件,就像上面的情况是\t一样。

FILE或流的中使用其他数据类型,或者在写入文件时不使用分隔符(\t)

可以直接写入文件列

注:我的目的不是限制文件写入到它的分隔符(制表符、空格等)

不能直接写入列,但可以使用IO操纵器格式化输出:

#include <iomanip>
...
std::cout << std::setw(20) << std::left << "Column 1"
<< std::setw(10) << std::left << "Column 2"
<< 'n';

但请注意:std::setw不会截断任何数据。如果文本较长,则此行中的列将比指定的更长。

最新更新