Формат printf и отступ слева - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем привет. Есть код:
            _snprintf(tmp, _countof(tmp) - 1, "%d. Buyer %s %s, got %d Rub for %d USD with exchange rate: %.2f USD/Rub.\r\n\
%d. Seller %s %s, got %d USD for %d USD with exchange rate: %.2f USD/Rub.\r\n\
%d.  Organization cash increased for %d and now it is %lld Rub.\r\n",
operationNum, buyer.szName, buyer.szSurname, sellerRublesToSell, buyerDollarsToSell, rubInUsd,
operationNum, seller.szName, seller.szSurname, buyerDollarsToSell, sellerRublesToSell, rubInUsd,
operationNum, totalComissionRub, organizationCash);
 
            log.Write(tmp, strlen(tmp));
имено с такой ориентацией на странице, тк если сделать его таким:
    _snprintf(tmp, _countof(tmp) - 1, "%d. Buyer %s %s, got %d Rub for %d USD with exchange rate: %.2f USD/Rub.\r\n\
                %d. Seller %s %s, got %d USD for %d USD with exchange rate: %.2f USD/Rub.\r\n\
                %d.  Organization cash increased for %d and now it is %lld Rub.\r\n",
                operationNum, buyer.szName, buyer.szSurname, sellerRublesToSell, buyerDollarsToSell, rubInUsd,
                operationNum, seller.szName, seller.szSurname, buyerDollarsToSell, sellerRublesToSell, rubInUsd,
                operationNum, totalComissionRub, organizationCash);
 
            log.Write(tmp, strlen(tmp));
то в файле он будет записан с таким же отступом. Как сохранить красоту кода (как во втором варианте) и убрать отступ в файле?
разобрался надо \r добавить
а нет для _snprintf не работает для printf работает - на экран выводится все нормально, а в файле отступы
для _snprintf эти части
\r\n
надо перенести на следующую строку

Решение задачи: «Формат printf и отступ слева»

textual
Листинг программы
            _snprintf(tmp, _countof(tmp) - 1, 
                        "%d. Buyer %s %s, got %d Rub for %d USD with exchange rate: %.2f USD/Rub.\r\n"
                        "%d. Seller %s %s, got %d USD for %d USD with exchange rate: %.2f USD/Rub.\r\n"
                        "%d.  Organization cash increased for %d and now it is %lld Rub.\r\n",
                        operationNum, buyer.szName, buyer.szSurname, sellerRublesToSell, buyerDollarsToSell, rubInUsd,
                        operationNum, seller.szName, seller.szSurname, buyerDollarsToSell, sellerRublesToSell, rubInUsd,
                        operationNum, totalComissionRub, organizationCash);
 
            log.Write(tmp, strlen(tmp));

Объяснение кода листинга программы

  1. В данном коде используется функция _snprintf для форматирования и записи информации в строку tmp.
  2. Форматирование строки осуществляется с помощью использования спецификаторов формата, таких как %d, %s, и т.д.
  3. Первая строка форматирования соответствует операции покупки, где указывается номер операции, имя и фамилия покупателя, количество проданных рублей и долларов, а также курс обмена рублей на доллары.
  4. Вторая строка форматирования соответствует операции продажи, где указывается номер операции, имя и фамилия продавца, количество проданных долларов и рублей, а также курс обмена рублей на доллары.
  5. Третья строка форматирования соответствует операции увеличения денежных средств организации, где указывается номер операции, текущее значение денежных средств и их увеличение.
  6. Функция log.Write используется для записи отформатированной строки в лог-файл.
  7. Значения переменных buyer.szName, buyer.szSurname, seller.szName, seller.szSurname, sellerRublesToSell, buyerDollarsToSell, rubInUsd, totalComissionRub и organizationCash используются в качестве значений при форматировании строки.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5