Форматное преобразование в памяти
От функции scanf и printf происходят функции sscanf и sprintf, которые осуществляют аналогичные преобразования, но оперируют со строкой, а не с файлом. Обращения к этим функциям имеют вид:
sprintf(string, control, arg1, arg2, ...) sscanf(string, control, arg1, arg2, ...)
Как и раньше , функция sprintf преобразует свои аргументы arg1, arg2 и т.д. В соответствии с форматом, указанным в control, но помещает результаты в string, а не в стандартный вывод. Kонечно, строка string должна быть достаточно велика, чтобы принять результат. Например, если name - это символьный массив, а n - целое, то
sprintf(name, "temp%d", n);
создает в name строку вида tempnnn, где nnn - значение n.
функция sscanf выполняет обратные преобразования - она просматривает строку string в соответствии с форматом в аргументе control и помещает результирующие значения в аргументы arg1, arg2 и т.д. Эти аргументы должны быть указателями. В результате обращения
sscanf(name, "temp%d", &n);
переменная n получает значение строки цифр, следующих за temp в name.
Упражнение 7-2
Перепишите настольный калькулятор из лекции №4, используя для ввода и преобразования чисел scanf и/или sscanf.