İş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
"%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.
Ne kadar uzun işaretsiz bir tamsayı(iş...
Bool için printf biçim belirteci nedir...
Nasıl Python ile url-güvenli en kısa d...
Java benzersiz ve kısa bir dosya adı o...
Süresi dolduktan sonra Facebook OAuth2...