реклама на сайте
подробности

 
 
> непонятно? откуда берется пробел в массиве символов
Alex_Golubev
сообщение Jun 26 2017, 05:06
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 280
Регистрация: 18-03-17
Пользователь №: 95 877



Привет.
Прям не знаю как так получается.
Пишу:
CODE
sprintf(print_buf,"Доб.вода.....%2.0f%%\n",Water);

Где print_buf массив типа char размерностью 32.
После получаю:

CODE
print_buf    <array>"Доб.вода..... 0%
"    0x20000BC4    char[32]    
[0]    'Д' (0xC4)    0x20000BC4    char    
[1]    'о' (0xEE)    0x20000BC5    char    
[2]    'б' (0xE1)    0x20000BC6    char    
[3]    '.' (0x2E)    0x20000BC7    char    
[4]    'в' (0xE2)    0x20000BC8    char    
[5]    'о' (0xEE)    0x20000BC9    char    
[6]    'д' (0xE4)    0x20000BCA    char    
[7]    'а' (0xE0)    0x20000BCB    char    
[8]    '.' (0x2E)    0x20000BCC    char    
[9]    '.' (0x2E)    0x20000BCD    char    
[10]    '.' (0x2E)    0x20000BCE    char    
[11]    '.' (0x2E)    0x20000BCF    char    
[12]    '.' (0x2E)    0x20000BD0    char    
[13]    ' ' (0x20)    0x20000BD1    char    
[14]    '0' (0x30)    0x20000BD2    char    
[15]    '%' (0x25)    0x20000BD3    char    
[16]    '\n' (0x0A)    0x20000BD4    char    
[17]    '\0' (0x00)    0x20000BD5    char    
[18]    '\0' (0x00)    0x20000BD6    char    
[19]    '\0' (0x00)    0x20000BD7    char    
[20]    '\0' (0x00)    0x20000BD8    char    
[21]    '\0' (0x00)    0x20000BD9    char    
[22]    '\0' (0x00)    0x20000BDA    char    
[23]    '\0' (0x00)    0x20000BDB    char    
[24]    '\0' (0x00)    0x20000BDC    char    
[25]    '\0' (0x00)    0x20000BDD    char    
[26]    '\0' (0x00)    0x20000BDE    char    
[27]    '\0' (0x00)    0x20000BDF    char    
[28]    '\0' (0x00)    0x20000BE0    char    
[29]    '\0' (0x00)    0x20000BE1    char    
[30]    '\0' (0x00)    0x20000BE2    char    
[31]    '\0' (0x00)    0x20000BE3    char


Откуда в 13-й ячейке пробел?

Сообщение отредактировал Сергей Борщ - Jun 27 2017, 15:47
Причина редактирования: Исправил орфографию в названии темы и собщении
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Alex_Golubev
сообщение Jun 28 2017, 04:55
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 280
Регистрация: 18-03-17
Пользователь №: 95 877



А как можно сделать выравнивания текста с правой стороны, а цифр с левой как на магазином чеке?
Код
|вода.....100%  |
|жир......10,56 |
|Белок....3,1   |


Сообщение отредактировал Alex_Golubev - Jun 28 2017, 05:00
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jun 28 2017, 05:38
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Alex_Golubev @ Jun 28 2017, 07:55) *
А как можно сделать выравнивания текста с правой стороны, а цифр с левой
Вы издеваетесь? Двумя сообщениями выше дал ссылку на полное описание форматной строки printf, даже на русском языке. "Чтение документации из интернета вслух - 100 евро/час":
QUOTE
Знак | Название знака | Значение | В отсутствие этого знака
- | минус | выводимое значение выравнивается по левому краю в пределах минимальной ширины поля | по правому
Количество точек можно выводить как строку из максимально возможного количества точек, смещая адрес начала строки на длину названия:
CODE
printf("%s%s", item_name[i], "........." + strlen(item_name[i]));


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th June 2025 - 08:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01384 секунд с 7
ELECTRONIX ©2004-2016