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


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

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

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

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

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

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

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

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

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

чем то напоминает - "юникод не нужен"
...
Рейтинг: 0 / 0
15.04.2017, 13:33
    #39439112
YesSql
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Число (в строке) разбить на разряды с помощью printf возможно?
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
17.04.2017, 00:21
    #39439435
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Число (в строке) разбить на разряды с помощью printf возможно?
Изопропилмирные люди в состоянии выбрать и модифицировать локаль даже не будучи программистамив состоянии, ктож спорит, но почему то не делают))
...
Рейтинг: 0 / 0
17.04.2017, 08:16
    #39439476
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Число (в строке) разбить на разряды с помощью printf возможно?
egorychИзопропилмирные люди в состоянии выбрать и модифицировать локаль даже не будучи программистамив состоянии, ктож спорит, но почему то не делают))
1) делают
2) не забывайте об интернационализации приложений
3) не очень плохо, если все программы в текущей сессии одинаково форматируют числа
...
Рейтинг: 0 / 0
17.04.2017, 13:05
    #39439619
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Число (в строке) разбить на разряды с помощью printf возможно?
Изопропилне очень плохо, если все программы в текущей сессии одинаково форматируют числаесли они форматируют одинаково неудобно - то плохо.
...
Рейтинг: 0 / 0
17.04.2017, 13:14
    #39439626
Nika gnome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Число (в строке) разбить на разряды с помощью printf возможно?
Всё просто. Если вдруг понадобится, чтобы функция вместо пробелов вставляла любые другие символы - для этого можно добавить соответствующие аргументы. Скажем, separator==null - зависит от локали, separator ==',' - символ-разделитель запятая и т.д.
В моём случае нужен был именно пробел.
...
Рейтинг: 0 / 0
17.04.2017, 14:14
    #39439671
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Число (в строке) разбить на разряды с помощью printf возможно?
Nika gnome,

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

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

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

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


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