Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: в строковую переменную поместить число
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
sergey sva
Что то из головы вылетело, как в строковую переменную вписать число?
sprintf( "abcdr0x41ddddd %d"....)
нужно что бы число 0x41 вставилось как символ.
Alex11
sprintf( "abcdr\101ddddd %d"....)
Сергей Борщ
sprintf( "abcdr\x41ddddd %d"....)
Палыч
Цитата(Сергей Борщ @ Feb 22 2012, 03:58) *
sprintf( "abcdr\x41ddddd %d"....)

Так не получится: за "41" следует "маленькая кучка" символов "d", коротые будут восприняты как продолжение шестнадцатиричного числа...
ReAl
Код
sprintf( "abcdr\x41" "ddddd  %d"....)

и пусть компилятор склеивает строки.
А ещё, на мой взгляд, правильнее так:
Код
#define STR_MY_CONTROL_SYMBOL "\x41"
sprintf( "abcdr" STR_MY_CONTROL_SYMBOL "ddddd  %d"....)

Ну в смысле так :-)
CODE
#define STRINGFY_(x) #x
#define STRINGFY(x) STRINGFY_(x)

#define STR_RESET "\x1B" "c"
#define STR_HOME_CLR "\x1B[2J"
#define STR_ATTR_OFF "\x1B[m"
#define STR_ATTR_BOLD "\x1B[1m"
#define STR_ATTR_UNDERLINE "\x1B[4m"
#define STR_ATTR_REVERSE "\x1B[7m"
#define STR_ATTR_BOLD_REVERSE "\x1B[1;7m"
#define STR_SCROLL_FROM(from) "\x1B[" STRINGFY(from) "r"
#define STR_GO_LP(line,pos) "\x1B[" STRINGFY(line) ";" STRINGFY(pos) "H"
// ну тут ещё всякое

#define SCROLL_BEGIN 19
#define SCROLL_END 24

// Это собирается _одна_ длинная строка и одним оператором отправляется в порт
uart << STR_RESET // Reset terminal (attributes, scroll area & so on)
STR_HOME_CLR // Clear screen and go home
"scmRTOS sample 4-Debug\n"
STR_ATTR_BOLD_REVERSE // set header attributes
"Process\tStack\tCPU%\n"
STR_ATTR_OFF // clear attributes
STR_SCROLL_FROM(SCROLL_BEGIN)
STR_GO_LP(SCROLL_END,1) // cursor to bottom of screen (and scroll area)
;
sergey sva
Цитата
и пусть компилятор склеивает строки.
А ещё, на мой взгляд, правильнее так:

Спасибо сейчас попробую так сделать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.