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

ogsagwnx  于 2022-12-24  发布在  其他
关注(0)|答案(1)|浏览(118)

我使用的是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";

下面是2列空间分隔的文本文件sample.conf

AA.    Name
BB     Class
CC     Grade

它正在正确地更新文件
我的问题是,有没有办法在不使用分隔符的情况下写入上述文本文件,如在上述情况下是**\t**。
通过使用其他数据类型,如FILEofstream其他不使用分隔符(\t)*写入文件的

可直接写入文件列

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

xn1cxnb4

xn1cxnb41#

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

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

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

相关问题