Я использую sprintf для форматирования моих данных. Тот же вывод при форматировании с использованием printf работает хорошо, но я не могу использовать printf, поскольку я использую выходные данные для отправки электронной почты.
for(...)
{
sprintf(sLuns, "%-50s%-50s%-50s%-3d%-14s", str1, str2, str3, int1, str4);
string sRow(sLuns);
sTable = sTable + "\n" + sRow;
}
Результат sTable выглядит следующим образом. Ширина не является постоянной для всех столбцов. Это потому, что я преобразовываю элементы строки в строку C?
Name1 Str1 Str2 10 str3
Name1 Str1 Str2 10 str3
Name111 Str1 Str2 10 str3
Я вижу, у вас также есть C++
по вашему вопросу. Поэтому я рекомендую вам использовать C++
.
Вы можете использовать левую и setw от iomanip
для того чтобы достигнуть того, что вы хотите.
Пример:
#include <string>
#include <iostream>
#include <strstream>
#include <iomanip>
using namespace std;
string str1 = "str1";
string str2 = "str2";
string str3 = "str3";
string str4 = "str4";
int i = 10;
int main()
{
strstream str;
str << left
<< setw(10) << str1
<< setw(10) << str2
<< setw(10) << str3
<< setw(10) << i
<< setw(10) << str4
<< endl;
cout << str.rdbuf() << endl;
}
\t
)!