Jeśli nie wiesz o %I I %D specyfikatory formatu, postępuj zgodnie ze wskazówkami z tego artykułu.
Specyfikator formatu %i
W języku programowania C tzw %I służy do drukowania liczby całkowitej ze znakiem, gdy jest używana z funkcją printf(). Liczby całkowite ze znakiem to te, które mogą być dodatnie lub ujemne. W programowaniu C przy użyciu %i przekazywana wartość argumentu musi być wyrażeniem lub typem całkowitym, który automatycznie ocenia w typie danych całkowitym. Możesz także skorzystać z tzw %I specyfikator, aby odczytać wartość znaku, która mieści się w zakresie liczby całkowitej ze znakiem.
%d Specyfikator formatu
The %D z drugiej strony specyfikator formatu służy do drukowania liczby całkowitej bez znaku w języku programowania C. Tutaj liczby całkowite bez znaku są dodatnimi liczbami całkowitymi. W języku C, gdy używasz %d, to wartość typu argumentów int .
Różnice
Obydwa %I I %D specyfikatory formatu są często używane w języku programowania C do drukowania liczb całkowitych. Mogą wyglądać podobnie pod względem użytkowania, a także zachowywać się tak samo podczas korzystania z funkcji printf().
Przejdźmy do przykładowego kodu, w którym używane są oba specyfikatory formatu.
#include
int główny ( ) {
int cyfra ;
drukujf ( 'Proszę wprowadzić dowolną cyfrę: ' ) ;
skanf ( '%I' , & cyfra ) ;
drukujf ( ' \N Cyfra to: %i \N ' , cyfra ) ;
drukujf ( „Cyfra to: %d \N ' , cyfra ) ;
powrót 0 ;
}
W tym kodzie najpierw inicjujemy zmienną i pobieramy wartość od użytkownika za pomocą scanf(). Następnie pokazujemy dane wyjściowe za pomocą %di %i .
Wyjście:
Oba zapewniają podobne wyniki, gdy są używane z printf() funkcjonować. Nie ma znaczenia, czy wpiszesz wartość dodatnią, czy ujemną, wynik zawsze będzie taki sam.
Jeśli jednak spojrzymy na funkcję scanf, możemy je poprawnie rozróżnić. W powyższym kodzie, jeśli wprowadzimy wartość dziesiętną, np „012” . Jeśli używamy '%D' zamiast %I, otrzymasz wynik 12. Powodem jest to %D ignoruje wartość 0 zero z danych wejściowych użytkownika.
#includeint główny ( ) {
int cyfra ;
drukujf ( 'Proszę wprowadzić dowolną cyfrę: ' ) ;
skanf ( '%D' , & cyfra ) ;
drukujf ( ' \N Cyfra to: %i \N ' , cyfra ) ;
drukujf ( „Cyfra to: %d \N ' , cyfra ) ;
powrót 0 ;
}
Wyjście
Jeśli ta sama wartość zostanie wprowadzona za pomocą %I podobnie jak w funkcji scanf(), w tym przypadku wynikiem będzie 10. Powodem jest %I drukuje wartość dziesiętną 012 (reprezentacja ósemkowa).
#includeint główny ( ) {
int cyfra ;
drukujf ( 'Proszę wprowadzić dowolną cyfrę: ' ) ;
skanf ( '%I' , & cyfra ) ;
drukujf ( ' \N Cyfra to: %i \N ' , cyfra ) ; //wyjście na buty
drukujf ( „Cyfra to: %d \N ' , cyfra ) ; //wyjście na buty
powrót 0 ;
}
Wniosek
Specyfikator formatu to wzorzec, który początkowo zaczyna się od % znak i zwykle mówi nam, jakie dane są umieszczane na wejściu i jakie dane mają być pokazane. %D I %I to dwa specyfikatory szeroko stosowane w programowaniu w C. Są podobne, gdy są używane z funkcją printf(), ale dają inne wyniki, gdy są używane z funkcją scanf().