Görünüşe göre hiç kimse on yıldan fazla bir süredir çoklu platform * çözümü bulamadı 2008 yılından bu yana bulamadı, bu yüzden benimkini ekleyeceğim. Plz upvote. (Şaka. Umurumda değil.)
Çözüm: lltoa()
Nasıl kullanılır:
#include <stdlib.h> /* lltoa() */
// ...
char dummy[255];
printf("Over 4 bytes: %s\n", lltoa(5555555555, dummy, 10));
printf("Another one: %s\n", lltoa(15555555555, dummy, 10));
OP örneği:
#include <stdio.h>
#include <stdlib.h> /* lltoa() */
int main() {
unsigned long long int num = 285212672; // fits in 29 bits
char dummy[255];
int normalInt = 5;
printf("My number is %d bytes wide and its value is %s. "
"A normal number is %d.\n",
sizeof(num), lltoa(num, dummy, 10), normalInt);
return 0;
}
%lld
Yazdırma biçimi dizesinin aksine , bu benim için Windows'ta 32 bit GCC altında çalışır .
*) Neredeyse çok platformlu. MSVC'de, görünüşe göre _ui64toa()
yerine ihtiyacınız var lltoa()
.