Форматирование вывода для напоминания таблицы в C ++

0

Я использую 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
  • 0
    Я думаю, что вы ищете символы табуляции ( \t )!
  • 0
    Я уже дал размер ширины как 50 для строк. Почему снова?
Показать ещё 5 комментариев
Теги:

1 ответ

2

Я вижу, у вас также есть 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;

}
  • 0
    Тоже не работает Я дал это попробовать раньше

Ещё вопросы

Сообщество Overcoder
Наверх
Меню