O mais atual (C ++ 0x). Gostaria de saber se o comitê C fará novamente uma nova versão do padrão C um ano após o lançamento do padrão C ++, apenas para ofendê-los. : - \ sprintf para _int64 não assinado

Estou tendo o seguinte código. a saída do segundo% d no sprintf é sempre mostrada como zero. Eu acho que estou especificando especificadores errados. Alguém pode me ajudar na obtenção de escrever string com valores corretos. E isso tem que ser alcançado no padrão posix. Obrigado pelas contribuições

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);
    }

Resultado:

The string is
OD DB File Size = 100 bytes      XML file size = 0 bytes 

questionAnswers(3)

yourAnswerToTheQuestion