logo

scanf w C

W języku programowania C scanf to funkcja, która oznacza Scan Formatted String. Służy do odczytywania danych ze stdin (standardowy strumień wejściowy, czyli zwykle klawiatura), a następnie zapisywania wyniku do podanych argumentów.

  • Akceptuje dane znakowe, łańcuchowe i numeryczne od użytkownika przy użyciu standardowego wejścia.
  • scanf używa również specyfikatorów formatu, takich jak printf.

scanf Składnia

Składnia scanf() w C jest podobna do składni printf().



Niezbędna kompilacja Ubuntu
int scanf(  const char * format , ... );>

Tutaj,

    int jest typem zwracanym. format to ciąg znaków zawierający specyfikatory formatu. … wskazuje, że funkcja przyjmuje zmienną liczbę argumentów.

Przykładowe specyfikatory formatu rozpoznawane przez scanf:

%D zaakceptować wprowadzanie liczb całkowitych.



%ld akceptować wprowadzanie długich liczb całkowitych

%lld akceptować wprowadzanie długich, długich liczb całkowitych

%F zaakceptować wprowadzenie liczby rzeczywistej.



%C zaakceptować wprowadzanie typów znaków.

%S zaakceptować wprowadzenie ciągu znaków.

Aby dowiedzieć się więcej na temat specyfikatorów formatu, zapoznaj się z tym artykułem – Specyfikatory formatu w C

Przykład:

int gdzie;
scanf(%d, &var);

Scanf zapisze wartość wprowadzoną przez użytkownika do zmiennej całkowitej był.

Zwracana wartość scanf

Scanf w C zwraca trzy typy wartości:

obrazy przecen
    >0: Liczba wartości przekonwertowanych i przypisanych pomyślnie. 0: Nie przypisano żadnej wartości. <0: Napotkano błąd odczytu lub osiągnięto koniec pliku (EOF) przed wykonaniem jakiegokolwiek przypisania.

Dlaczego &?

Podczas skanowania danych wejściowych scanf musi gdzieś przechowywać te dane wejściowe. Aby zapisać te dane wejściowe, scanf musi znać lokalizację zmiennej w pamięci. I tu na ratunek przychodzi ampersand.

  • & jest również nazywany adresem operatora.
  • Na przykład &var jest adresem var.

Przykład scanf

Poniżej znajduje się program C do implementacji scanf:

C




// C program to implement> // scanf> #include> // Driver code> int> main()> {> >int> a, b;> > >printf>(>'Enter first number: '>);> >scanf>(>'%d'>, &a);> > >printf>(>'Enter second number: '>);> >scanf>(>'%d'>, &b);> > >printf>(>'A : %d B : %d'> ,> >a , b);> > >return> 0;> }>

pandy i numpy

>

>

Wyjście

Enter first number: 5 Enter second number: 6 A : 5 B : 6>

Powiązany artykuł:

  • Scansety w C