: 's', mont);
может подсказать как так сделать?
printf("Its num: %*c \n", montNum ? 'd', montNum : 's', mont); может подсказать как так сделать?
Сделать что?
ну чтото вроде: если montNum==true то спецификатор 'd' и вывести montnum иначе спецификатор 's' и вывести mont,хочу через тернарник
Ты не можешь в printf динамически менять conversion (буковки c, d).
Можешь, херню несёшь
Тут проблема в том, что у тебя в си нет такого понятия как набор аргументов, ты не можешь ими оперировать (только на языке си-препроцессора разве что), по этой причине тебе как минимум потребовалось бы 2 тернарника - на первый аргумент (форматную строку) и на второй аргумент, в свою очередь со вторым аргументом проблема - возвращаемое значение тернарника должно быть одинаково в каждой его части (кроме использования NULL), поэтому ты не можешь сделать такой тернарник, а первый тернарник ты не можешь сделать, т.к. тернарный оператор работает не в компайл-тайме, т.е. твой строковый литерал не будет склеен и ты получишь ошибку.
Так можешь или не можешь?)
Тоталли не одобряю генерацию форматной строки для printf из кода. Это подвержено ошибкам и не дают работать компиляторной фиче по проверке соответствия форматной строки и аргументов.
Веришь или нет, но здесь всем плевать, что ты одобряешь, а что нет, возможность генерации форматной строки есть? - есть, вопрос закрыт.
Ты чего агрессивный такой? Случилось чего? Возможность менять conversion в рамках спеки printf - нет. Вопрос перезакрыт.
Эмм, что за бред? У тебя спека для функции, в ней не сказано каким образом может быть получена форматная строка, в стандарте не детерминировано в каком формате будет представлена мультибайтовая последовательность - в формате литерала или же в формате константной/неконстантной строки. Покажи мне пожалуйста спеку, где речь идёт о преобразованиях форматной строки до её передачи в функцию. И нет, не случилось, просто крайне раздражают малолетние дебилы, которые наслушавшись преподов в универах/уроков на ютубе, приходят и пытаются пересказать прошедшую пару))
Мне в падлу спорить с тобой, оставайся при своем, пусть другие рассудят кто тут "малолетний дебил".
Обсуждают сегодня