LINUX.ORG.RU

Какие есть библиотека для вывода текста для Си, чтоб было похоже на std::cout?

 , ,


0

2

Есть ли какие-нибудь либы для Си, которые б позволяли похожим на cout образом делать вывод, чтоб ставить выводимую переменную в конкретно ту позицию, где я ее хочу вывести, чтоб без этих %d %f и прочего?

Нечто вроде:

uint16_t price = 100;
uint16_t quantity = 15;
my_print(STR, "Price :", UINT16, price, STR, "; quantity:", UINT16, quantity, END);

// аналог std::cout << "Price :" << price << "; quantity:" << quantity;

★★★★★

Последнее исправление: SZT (всего исправлений: 1)
Ответ на: комментарий от X512

Слишком шумно из-за кучи этих подряд идущих вызовов, так не годится.

Неужели придется самому такую либу писать?

SZT ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Писать типы это намного менее шумно, чем писать вызов функции со скобочками и ;

Ну и тут еще смысл в том, что может быть нужно выводить что-то в шестнадцатиричном формате, а не в десятичном, так что это не столько про типы, сколько про формат вывода

SZT ★★★★★
() автор топика
Ответ на: комментарий от SZT

Неужели придется самому такую либу писать?

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

enum {
	END,
	STR,
	UINT16,
};

void my_print(int op, ...)
{
	va_list args;
	va_start(args, op);
	for (; op != END; op = va_arg(args, int)) {
		switch (op) {
		case STR:
			printf("%s", va_arg(args, const char*));
			break;
		case UINT16:
			printf("%u", va_arg(args, uint16_t));
			break;
		default:
			abort();
		}
	}
	va_end(args);
}
X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от X512

Прям как в Паскале :-) Только типы уже в названиях функций заключены.

gedisdone ★★★
()
Ответ на: комментарий от X512

Лорчую, только вместо простого аборта сделать вывод файла и нимера строки, и до кучи обернуть макросом, который сам вставляет END на конце.

shkolnick-kun ★★★★★
()
Ответ на: комментарий от anonymous

Нуьчик умер после того, как EFG пролюбил домен, и Абу сделал нульчехаркач, а потом убил его (это мое оценочное суждение).

shkolnick-kun ★★★★★
()
Ответ на: комментарий от shkolnick-kun

Это ты зря, чмихуил просо обосрался, дважды. Теперь остаётся сидеть на постнульчанах типа нультиреча.

anonymous
()
Ответ на: комментарий от anonymous

Сейчас- нигде, иногда в ридонли захожу на сосач, альфачан, послнульчанскую пустошь

shkolnick-kun ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.