Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
 Аватар для orange_fox
34 / 34 / 8
Регистрация: 06.04.2014
Сообщений: 189

Создать макрос обрамляющий кавычками значение переменной

26.03.2015, 18:53. Показов 2400. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Кавычки вручную ставить нельзя

C++
1
2
3
4
5
//Не работает
#define T(N) "N"
 
//Хотелось, чтобы работал так:
char* c = T(15); //char* c = "15";
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.03.2015, 18:53
Ответы с готовыми решениями:

Создать две переменных, ввести их с клавиатуры. Вывести строки: имя переменной - адрес переменной - значение п
Создать две переменных, ввести их с клавиатуры. Вывести строки: имя переменной - адрес переменной - значение переменной.

Как создать функцию изменяющую значение переменной?
Насколько я понял функция или возвращает значение,или выполняет какие либо действия,но изменить значение можно только у глобальной...

Как присвоить переменной значение с разными кавычками ' и " одновременно?
Как присвоить переменной значение с разными кавычками ' и " одновременно? Например java скрипт содержит в себе одинарный и двойные...

9
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
26.03.2015, 19:00
C++
1
#define T(N) #N
0
 Аватар для orange_fox
34 / 34 / 8
Регистрация: 06.04.2014
Сообщений: 189
26.03.2015, 19:03  [ТС]
Ой, ошибся в задаче:
C++
1
2
3
//Хотелось, чтобы работал так:
int i = 15;
char* c = T(i); //char* c = "15";
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
26.03.2015, 19:15
Цитата Сообщение от orange_fox Посмотреть сообщение
//Хотелось, чтобы работал так:
int i = 15;
char* c = T(i); //char* c = "15";
никак.
препроцессор ничего не знает о выражениях времени компиляции,
я уже молчу, что у вас - выражение времени выполнения.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
26.03.2015, 19:15
orange_fox, Невозможно макросом. Максимум можно получить просто "i", ибо это видит препроцессор в тексте программы.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
26.03.2015, 19:27
Цитата Сообщение от orange_fox Посмотреть сообщение
Хотелось, чтобы работал так:
to_string(i). Но от C строк придется отказаться.
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
26.03.2015, 21:49
Цитата Сообщение от Renji Посмотреть сообщение
to_string(i). Но от C строк придется отказаться.
Ну это не обязательно. Просто свыкнуться с мыслью что объект string всё равно будет создаваться.

Добавлено через 2 минуты
Минута маразма
C++
1
#define T(N) std::to_string(N).c_str()
http://ideone.com/KW80q5
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
26.03.2015, 21:53
Цитата Сообщение от MrGluck Посмотреть сообщение
Минута маразма
Именно что маразма. std::to_string(N).c_str() создает временный объект и возвращает ссылку на буфер внутри него. Разумеется, по завершении строчки кода, и объект, и его буфер превращаются в тыкву. Ну а вы получаете UB при попытке чтения уже удаленного буфера.
1
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,870
26.03.2015, 21:59
а так не проще
C++
1
2
char buf[16];
sprintf(buf,"%d",i);
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
26.03.2015, 22:12
Цитата Сообщение от Renji Посмотреть сообщение
вы получаете UB при попытке чтения уже удаленного буфера.
Да, согласен. Даже не буду отмазываться "это будет работать в большинстве случаев".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.03.2015, 22:12
Помогаю со студенческими работами здесь

Значение скопированного присвоить переменной, макрос
Доброго времени суток. ТЗ: есть вордовский документ из него копируем первую строку(название будущего документа), и сохраняем в...

Регулярное выражение, получить значение между кавычками
Пожалуйста сделайте регулярное выражение, чтобы вытащить: RealmID 2f25f47879a3b12d3684af1dd8703543 auth // regex_parse.cpp //...

Как создать файл id.txt и в него записать значение переменной
у меня есть переменна $id как создать файл id.txt и в него записать значение переменной $id ?

Создать функцию, обнуляющую значение переменной между заданными минимумом и максимумом
Задача: Создать функцию, обнуляющую значение переменной между заданными минимумом и максимумом. Что-то пошло не так... #include...

Создать цикл, чтобы каждые 2 секунды переменной присваивалось следующее значение массива
Есть массив и переменная. нужно создать цикл, чтобы каждые 2 секунды переменной присваивалось следующее значение массива. Заранее спасибо.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru