SORU
2 Ocak 2012, PAZARTESİ


İşaretsiz kısa tamsayı için Biçim belirteci nedir?

Aşağıdaki program var

#include <stdio.h>

int main(void)
{
    unsigned short int length = 10; 

    printf("Enter length : ");
    scanf("%u", &length);

    printf("value is %u \n", length);

    return 0;
}

Ne zaman kullanarak derlenmiş olan gcc filename.c aşağıdaki uyarı (scanf() satır) yayınladı.

warning: format ‘%u’ expects argument of type ‘unsigned int *’, but argument 2 has type ‘short unsigned int *’ [-Wformat]

Ben başvurulan C99 specification - 7.19.6 Formatted input/output functions olduğunu anlayamamıştım doğru biçimde belirleyici kullanırken uzunluğu değiştiriciler (short, long, vb) ile unsigned int veri türü.

%u 12 ** doğru belirtici? Neden yukarıda belirtilen uyarı alıyorum?! eğer öyleyse

EDİT: Çoğu zaman, %uh çalışıyordum ve hala uyarı veriyordu.

CEVAP
2 Ocak 2012, PAZARTESİ


"%h" değiştirici kullanmayı deneyin:

scanf("%hu", &length);
        ^

Aşağıdaki d , ı , o , u , x , X veya n dönüşüm belirtir belirtici türü ile bir değişken için geçerlidirkısa veya işaretçi imzasız kısa.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ChannelRichard

    ChannelRicha

    7 Kasım 2008
  • Blu animations and other videos

    Blu animatio

    15 HAZİRAN 2007
  • Vicious Computers

    Vicious Comp

    14 EKİM 2006