![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 7 Всего: 50 |
sprintf: форматированный вывод, как?
Надо сделать так, чтоб 2-ая колонка была выровняна по левому краю: row_11111 row_dsfgabcde row_12 row_dfgsdabcded row_123345000 row_abcdesdcfsdf row_1234 row_abcdewer row_12345 row_abcde Это сообщение отредактировал(а) Alca - 26.3.2009, 18:10 |
|||
|
||||
Acer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 5.9.2007 Где: UA::DN Репутация: нет Всего: 8 |
Добавляй '\t' или "\t\t" в начале каждой строки второй колонки
|
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 7 Всего: 50 |
Съезжает строка: row_11111 row_dsfgabcde row_12 row_dfgsdabcded row_123345000 row_abcdesdcfsdf row_1234 row_abcdewer row_12345 row_abcde <<<<<<<<<<<<< |
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 10 Всего: 146 |
|
|||
|
||||
Acer |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 5.9.2007 Где: UA::DN Репутация: нет Всего: 8 |
У меня так не работает... А вот тако вот:
Только тут придется определять длинну строки, чтобы поставить достаточное количество пробелов... тут написанно, как оно должно работать. |
||||||
|
|||||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 10 Всего: 146 |
||||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 7 Всего: 50 |
Не %-10s а %+10s.
Поставил для каждой строки свой интервал (+7s, +3s, +5s, ...) - в MessageBox одна строка вылазит, а когда скопировал содержимое бокса в файл, то вылазит другая строка... ![]() Добавлено через 2 минуты и 43 секунды
С++ Builder 6.0, WinXP SP3 Это сообщение отредактировал(а) Alca - 26.3.2009, 18:47 |
|||
|
||||
Acer |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 5.9.2007 Где: UA::DN Репутация: нет Всего: 8 |
ОС - WinXP, компилятор - GCC. В результате получается вывод строк без форматирования. То есть не в виде таблицы. Я сделал вот как:
То есть спецификатор %-10s устанавливается для пробелов. Тогда форматируется. Пробелы выводятся перед вторым столбцом Это сообщение отредактировал(а) Acer - 26.3.2009, 18:51 |
||||
|
|||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 7 Всего: 50 |
||||
|
||||
Acer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 5.9.2007 Где: UA::DN Репутация: нет Всего: 8 |
Alca, какой код такое вызывает?
|
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 7 Всего: 50 |
Это я делаю свою реализацию assert-a... |
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 10 Всего: 146 |
Результаты теста: http://codepad.org/dRQXcMhm
|
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 7 Всего: 50 |
А ты поробуй с двумя, тремя колонками и чтоб строки были разной длины. Добавлено через 4 минуты и 29 секунд Мне хотя бы чтоб в мсжбоксе нормально выводило ![]() |
|||
|
||||
586 |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 10 Всего: 146 |
http://codepad.org/3mupZOkM
Там шрифт не моноширинный (т.е. буквы разного размера). Это сообщение отредактировал(а) 586 - 26.3.2009, 19:22 |
||||||
|
|||||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
может Вам снова С++ вариант подойдёт ![]()
Сначала Вы устанавливаете ширину поля, а потом уже записываете внутрь "поля" переменную. С помощью модификатора left происходит выравнивание по левой границе поля. По правой границе - right Это сообщение отредактировал(а) zim22 - 26.3.2009, 20:51 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |