Director c

Citește râul stdin

În versiunea C99, limita de calificare este aplicată parametrului format.

  • formatori de format;
  • caractere spații albe;
  • alte caractere decât spațiul alb.

Citește o valoare în virgulă mobilă (numai C99)







Similar cu codul% a (numai C99)

Citește un caracter

Citește un număr întreg zecimal

Citește întregul în orice format (zecimal, octal, hexazecimal)

Citește un număr real

Similar cu codul% e

Citește un număr real

Similar cu codul% f (numai C99)

Citește un număr real

Similar cu codul% g

Citește un număr octal

Citește un număr hexazecimal

Similar cu codul% x

Citește întregul zecimal fără semn

Se uită la un set de caractere

Citește semnul procentului

Pentru a citi un număr întreg lung, puneți modificatorul l înainte de specificatorul formatului și citiți întregul scurt, modificatorul h. Acești modificatori pot fi utilizați cu codurile de format d, i, o, u și x.

Un caracter non-spațiu în șirul de formate determină funcția scanf () să citească și să elimine caracterul corespunzător. De exemplu, dacă utilizați un șir de format,. funcția scanf () va citi mai întâi valoarea întregului, apoi va citi și arunca virgula și va citi în cele din urmă o întreagă întreagă. Dacă nu se găsește caracterul specificat, funcția scanf () va fi oprită.

Elementele fluxului de intrare trebuie separate prin spații, file sau linii noi. Astfel de simboluri sunt virgule, punct și virgulă și așa mai departe. nu sunt recunoscute ca delimitatori. Aceasta înseamnă că operatorul

va lua valorile introduse ca 10 20, dar refuză în mod categoric să "vină", ​​servit ca 10.20.

Caracterele * după caracterul% și înainte de codul de format citește datele tipului specificat, dar leagă asignarea lor. Prin urmare, operatorul

Când introduceți date în formularul 10/20, puneți valoarea 10 în variabila x, aruncați semnul diviziei și atribuiți valoarea 20 variabilei y.

Comenzile de formatare pot conține modificatorul de lungime maximă. Este un număr întreg între semnul% și codul format, care limitează numărul de caractere care pot fi citite pentru orice câmp. De exemplu, dacă doriți să citiți maximum 20 de caractere în variabila de adresă, utilizați următoarea instrucțiune.







Dacă fluxul de intrare conține mai mult de 20 de caractere, atunci următoarea dată când accesați operația de introducere, citirea începe din momentul în care apelul scanf () anterior sa oprit. Dacă se găsește un caracter albe, intrarea datelor pentru câmp se poate încheia înainte ca lungimea maximă a câmpului să fie atinsă. În acest caz, funcția scanf () continuă să citească câmpul următor.

Deși spațiile, filele și liniile noi sunt folosite ca delimitatori de câmp, atunci când citesc un singur caracter, ele sunt citite ca orice alt caracter. De exemplu, dacă fluxul de intrare este format din simboluri xy, atunci operatorul

puneți caracterul x în variabila a, spațiul în variabila b și simbolul y în variabila c.

Amintiți-vă că orice alte caractere din linia de control care nu sunt parametri de formatare (inclusiv spații, file și linii noi) sunt utilizate pentru a potrivi și elimina caracterele din fluxul de intrare. De exemplu, dacă fluxul de intrare arată ca 10t20, instrucțiunea

puneți 10 în variabila x și 20 în variabila y. Simbolul t este aruncat, deoarece este prezent în linia de control.

Dacă primul caracter din set este un caracter de inserție (^), obținem efectul opus: câmpul de intrare este citit de primul caracter din setul de caractere dat, adică semnul de inserare face ca funcția scanf () să accepte orice caractere care nu sunt definite în set.

Multe compilatoare vă permit să specificați o gamă utilizând o cratimă. De exemplu, următoarea instrucțiune face ca funcția scanf () să accepte caracterele de la A la Z.

Este important să rețineți că un set de caractere scanate distinge între majuscule și litere mici. Prin urmare, dacă doriți să scanați ambele litere mari și minuscule, setați-le separat.

Modificatorii de format au fost adăugați funcției scanf () cu standardul C99

În versiunea C99, sunt adăugați mai mulți modificatori de format pentru utilizarea în funcția scanf (): hh, ll, j, z și t. Modificatorul hh poate fi aplicat specificatorilor d, i, o, u, x și n. Aceasta înseamnă că argumentul corespunzător este un pointer la o valoare a tipului char semnat sau caractere nesemnate. Modificatorul ll poate fi, de asemenea, aplicat specificatorilor d, i, o, u, x și n. Înseamnă că argumentul corespunzător este un indicator pentru o valoare a tipului int long lung int sau unsign long long int.

Modificatorul de format j, care este aplicat specificatorilor d, i, o, u, x și n, înseamnă că argumentul corespunzător este un pointer la o valoare de tip intmax_t sau uintmax_t. Aceste tipuri sunt declarate în titlu și servesc pentru a stoca întregul cât mai mult posibil.

Modificatorul din formatul z, care se aplică specificatorilor d, i, o, u, x și n, înseamnă că argumentul corespunzător este un pointer la un obiect de tip size_t. Acest tip este declarat în titlu și servește la stocarea rezultatului dimensiunii operației.

Modificatorul de format t, care este aplicat specificatorilor d, i, o, u, x și n, înseamnă că argumentul corespunzător este un pointer la un obiect de tip ptrdiff_t. Acest tip este declarat în titlu și servește pentru a stoca valoarea diferenței dintre cele două indicii.







Articole similare

Trimiteți-le prietenilor: