Я не уверен, как лучше выровнять это. Я думал, используя L = name.length();
и вычитая это из setw
это выстроится лучше, но нет. я имею name
а также ID
установить правильно, но я не могу заставить остальных выстроиться в очередь. Это floats
Кстати.
for (int z=0; z<i ;z++){
if( EInfo[z].valid >0){
string name = employee[z].getName();
int L = name.length();
payReportObj << fixed << setprecision (2) << endl;
payReportObj << setw(3) << employee[z].getID()
<< setw(36)
<< employee[z].getName()
<< setw(30-L) << "$" << setw(4) << EInfo[z].grossPaySE
<< setw(25) << "$" << setw(4) << EInfo[z].taxSE
<< setw(15) << "$" << setw(4) << EInfo[z].insuranceSE
<< setw(25) << "$" << setw(4) << EInfo[z].netPaySE;
Я пытаюсь получить больше как это …
Это то, что у меня есть …
замещать setw(30-L)
с setw(30)
, И это:
int L = name.length();
не нужен Если вы хотите выровнять цифры по правому краю, используйте std::right
,
Похоже, что вы открыли ваш выходной файл в нодпад с пропорциональным шрифтом. Вы не увидите столбцы, выровненные пропорциональным шрифтом, даже если они есть. Измените шрифт на фиксированный или введите свой терминал type output.txt
,
Других решений пока нет …