преобразование типов, тип int запихнуть в label например (или в entry) |
Здравствуйте, гость ( Вход | Регистрация )
преобразование типов, тип int запихнуть в label например (или в entry) |
baunts |
7.9.2011, 10:16
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 1 Регистрация: 7.9.2011 Пользователь №: 2852 Спасибо сказали: 0 раз(а) Репутация: 0 |
1 int value = 1111111;
2 char str[20] = {'\0'}; 3 sprintf (str, "%d", value); 4 gtk_entry_set_text ( GTK_ENTRY (entry), str ); есть ли решение поприличнее (короче и универсальнее) 2и3 строк? |
|
|
Алексей1153 |
7.9.2011, 12:44
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
sprintf_s лучше использовать Там можно максимальную длину приёмника указать
а как в GTK+ покороче - не знаю. В Qt и в MFC только знаю )) Как выход, могу предложить добавить глобальную функцию, принимающую число и заполняющую контейнер с текстом Сообщение отредактировал Алексей1153 - 7.9.2011, 12:47 |
|
|
BRE |
7.9.2011, 13:06
Сообщение
#3
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
|
|
|
Алексей1153 |
7.9.2011, 16:57
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
BRE, может быть )
кстати, в std , может, своя печаталка есть, только я никогда не заморачивался и не искал Сообщение отредактировал Алексей1153 - 7.9.2011, 16:58 |
|
|
Iron Bug |
8.9.2011, 10:50
Сообщение
#5
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
BRE, может быть ) не может быть, а абсолютно точно. в кроссплатформе надо избегать непортабельных частных реализаций. под другими системами этих XXX_s функций нет и можно нарваться на проблемы. если очень хочется, можно определить макросы, конечно. чтобы под вендой был sprintf_s, а под линём - sprintf. но это тоже довольно хитрый макрос надо писать. 2 char str[20] = {'\0'}; 3 sprintf (str, "%d", value); кстати, занулять строку не обязательно. sprintf сам добавляет '\0' после окончания записи строки. нужно только проверять возвращаемый результат - сколько символов он записал в строку (естественно, добавленный ноль в конце не включается в длину). |
|
|
Sergey B. |
28.10.2011, 11:20
Сообщение
#6
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 12.2.2008 Пользователь №: 92 Спасибо сказали: 1 раз(а) Репутация: 0 |
|
|
|
RRaptor |
13.10.2012, 21:25
Сообщение
#7
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 13.10.2012 Пользователь №: 3559 Спасибо сказали: 0 раз(а) Репутация: 0 |
Как вариант:
int value = 1111111 ostringstream outs; outs<<value; gtk_entry_set_text ( GTK_ENTRY (entry), outs.str().data()); |
|
|
Текстовая версия | Сейчас: 28.11.2024, 3:23 |