IPB

Добро пожаловать, гость ( Вход | Регистрация )

9 Страниц V « < 7 8 9  
Reply to this topicStart new topic
> Delphi, Asm, C, WinAPI, PHP, ..., FAQ
Siberian GRemlin
Jul 2 2020, 18:29
Сообщение #161


Advanced Member
***

Группа: CTPAX-X
Сообщений: 494
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 212 раз(а)



В игре выводится количество денег с разделением порядков запятыми. В ЕХЕ упоминается формат вывода
CODE
%0lld
CODE
%03lld
Как я понимаю, это оно. Есть ли формат вывода с разделением порядков пробелами?

Нужно, чтобы было 1,234,567, а стало 1 234 567.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Jul 2 2020, 19:03
Сообщение #162


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,284
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 297 раз(а)



Это слегка не так работает.
%d - вывести digit
%ld - вывести long digit (для архитектур, где размер int больше long, например int 16, а long 32)
%lld - вывести long long digit (как правило int 64)

%0lld - тоже самое что и %lld (символ один и не указан размер)
%03lld - тоже самое, что %03d (выравнять тремя нулями слева, если число меньше), но для int64

CODE
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

int main(void) {
ULARGE_INTEGER x;
  x.QuadPart = 1;
  printf("%0lld\n", x.QuadPart); // будет просто 1
  printf("%03lld\n", x.QuadPart); // будет 001
  return(0);
}

В сях нет стандартных функций для разделения тысяч, чтобы из 1234567 сделать 1,234,567 или 1 234 567. Боюсь тебе придётся вручную искать код который это делает. Попробуй поискать по работе со строками и символом 0x2C (запятая). Ставлю на то, что как раз твои строки и работают с числами - смотри где они используются.
"%03lld" нужно чтобы у тебя числа менее тысячи добивались нулями: 3007 => 3,007, а не 3,7.
"%0lld" - это остаток в левой части, в примере 3007 - это будет тройка, т.к. её добивать нулями не нужно.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

9 Страниц V « < 7 8 9
Reply to this topicStart new topic
6 чел. читают эту тему (гостей: 6, скрытых пользователей: 0)
Пользователей: 0 -

 



Упрощённая версия Сейчас: 2nd December 2020 - 15:10