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

  • habpsu

    habpsu

    25 Temmuz 2007
  • Paulo Bautista

    Paulo Bautis

    21 Aralık 2008
  • tsweeney79

    tsweeney79

    21 Ocak 2008