sprintf for unsigned _int64

У меня следующий код. вывод второго% d в sprintf всегда отображается как ноль. Я думаю, что указываю неправильные спецификаторы. Может ли кто-нибудь помочь мне получить строку записи с правильными значениями. И это должно быть достигнуто в стандарте posix. Спасибо за вводные данные

void main() {
    unsigned _int64 dbFileSize = 99;
    unsigned _int64 fileSize = 100;
    char buf[128];
    memset(buf, 0x00, 128);
    sprintf(buf, "\nOD DB File Size = %d bytes \t XML file size = %d bytes", fileSize, dbFileSize);
    printf("The string is %s ", buf);
    }

Вывод:

The string is
OD DB File Size = 100 bytes      XML file size = 0 bytes 
19
задан hippietrail 3 April 2011 в 09:49
поделиться