powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Число (в строке) разбить на разряды с помощью printf возможно?
25 сообщений из 37, страница 1 из 2
Число (в строке) разбить на разряды с помощью printf возможно?
    #39438172
Фотография Nika gnome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Использую
Код: plaintext
1.
printf_s(str, "%d", value);


Возможно каким-то образом дать указание printf разбивать числа на группы разрядов? Прочла MSDN, порылась в яндексе.
В java находила. А в C++ что-то не могу..
Пример:
value: 12635500
Результат: 12 635 500

Помогите, пожалуйста, если сможете.
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39438194
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nika gnomeВозможно каким-то образом дать указание printf разбивать числа на группы разрядов? Прочла MSDN, порылась в яндексе.
ручками резать )))
и учиться гуглояндексом пользоваться.

http://www.sql.ru/forum/859256/chislo-v-stroku-s-razdelitelem
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39438402
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nika gnome,

какого типа числа?
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39438404
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nika gnomeВозможно каким-то образом дать указание printf разбивать числа на группы разрядов? .

невозможно.
нужно делать самому.
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39438495
Фотография Nika gnome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivNika gnome,

какого типа числа?
целого и дробного, положительного и отрицательного.
Я уже запилила сама свою функцию) Я просто думала, что буду изобретать велосипед и в printf это всё уже есть
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39438617
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Молодец, так держать!
Не забудь запилить Unit-тесты на функцию!
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39438623
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nika gnome,

Локаль учитывается?
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39438737
Фотография Nika gnome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

да. Функция получает на вход строку, либо число.
Далее пропускает лидирющие пробелы
далее пропускает 1 знак + или -
далее читает цифры до тех пор, пока не наткнётся до "не цифры".
И формирует новую строку, где на месте того числа проставлены пробелы.
Поэтому функция отрабатывает успешно:
40 -> 40
-52100 -> -52 100
4523.22 руб. -> 4 523.22 руб.
4700344500600,1$$ ->4 700 344 500 600,1$$
ровно так, как мне надо.
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39439009
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nika gnomeИ формирует новую строку, где на месте того числа проставлены пробелы.
почему именно пробелы, а не точки или запятые?
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39439024
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилпочему именно пробелы, а не точки или запятые?пробелы наглядней, проверено на пользователях
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39439076
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychИзопропилпочему именно пробелы, а не точки или запятые?пробелы наглядней, проверено на пользователях
особенно удобно, если это от текущих системных настроек отличается
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39439087
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилособенно удобно, если это от текущих системных настроек отличаетсятекущие системные настройки интересуют только программистов, мирным людям требуется, чтобы им было удобно
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39439106
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychИзопропилособенно удобно, если это от текущих системных настроек отличаетсятекущие системные настройки интересуют только программистов, мирным людям требуется, чтобы им было удобно

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

чем то напоминает - "юникод не нужен"
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39439112
YesSql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nika gnomeДобрый день!
Использую
Код: plaintext
1.
printf_s(str, "%d", value);


Возможно каким-то образом дать указание printf разбивать числа на группы разрядов? Прочла MSDN, порылась в яндексе.
В java находила. А в C++ что-то не могу..
Пример:
value: 12635500
Результат: 12 635 500

Помогите, пожалуйста, если сможете.
В C++ можно использовать numpunct

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
#include <iostream>
#include <string>
#include <locale>
#include <iomanip>

struct my_number_format : std::numpunct<char>
{
   char do_thousands_sep() const    { return ' '; }         // space as a separator
   std::string do_grouping() const  { return "\3"; }        // digits grouping
};



int main()
{
  std::cout.imbue(std::locale(std::locale(), new my_number_format));

  std::cout << std::setprecision(2) << std::fixed << 12345.678 << std::endl; // 12 345.68
}
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39439435
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилмирные люди в состоянии выбрать и модифицировать локаль даже не будучи программистамив состоянии, ктож спорит, но почему то не делают))
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39439476
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychИзопропилмирные люди в состоянии выбрать и модифицировать локаль даже не будучи программистамив состоянии, ктож спорит, но почему то не делают))
1) делают
2) не забывайте об интернационализации приложений
3) не очень плохо, если все программы в текущей сессии одинаково форматируют числа
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39439619
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилне очень плохо, если все программы в текущей сессии одинаково форматируют числаесли они форматируют одинаково неудобно - то плохо.
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39439626
Фотография Nika gnome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё просто. Если вдруг понадобится, чтобы функция вместо пробелов вставляла любые другие символы - для этого можно добавить соответствующие аргументы. Скажем, separator==null - зависит от локали, separator ==',' - символ-разделитель запятая и т.д.
В моём случае нужен был именно пробел.
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39439671
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nika gnome,

Вот тут еще для общего развития как в С++ можно форматировать числа (как с системными разделителями так и произвольными)
http://stackoverflow.com/questions/7276826/c-format-number-with-commas
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39439887
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychИзопропилне очень плохо, если все программы в текущей сессии одинаково форматируют числаесли они форматируют одинаково неудобно - то плохо.
неудобно - настраивайте под себя.
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39439892
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly MoskovskyNika gnome,

Вот тут еще для общего развития как в С++ можно форматировать числа (как с системными разделителями так и произвольными)
http://stackoverflow.com/questions/7276826/c-format-number-with-commas

А как кастомным numpunct в локале форматировать и дробную часть числа тоже? :)
http://ideone.com/wcfk2v
автор1,000,000.1234000
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39440157
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вася Уткин,

Нельзя.
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39440175
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилнеудобно - настраивайте под себя.я предпочитаю выполнять функциональные требования к своему приложению, а не к абстрактному. А мои пользователи предпочитают выполнять свою непосредственную работу, а не тратить время на бесконечную настройку винды под себя.
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39440408
д0kХ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Абстрактно меня складывается устойчивое ощущение,
что задачу форматирования внутри приложения может
придумать только руководитель подразделения саппорта,
что бы оправдать наличие штата в своем подразделении .
Что бы никто интуитивно не догадался почему так и открывал заявку.
...
Рейтинг: 0 / 0
Число (в строке) разбить на разряды с помощью printf возможно?
    #39440472
Common Lisp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychя предпочитаю хардкодить поведение в моём приложении, а не брать умолчания из системыПоправил.
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Число (в строке) разбить на разряды с помощью printf возможно?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]