Format de la cadena
La cadena de format és el format de les dades introduïdes. Aquest format comença amb% sign i seguit per l’especificador de format. L'especificador de format és un caràcter específic que s'utilitza per a quin tipus de dades s'està llegint.
arg1, arg2, arg3 ... són les adreces de les variables on s'emmagatzemaran les dades introduïdes.
Funció scanf ()
Sintaxi: int scanf (format de cadena, arg1, arg2, arg3 ...)
Alguns dels especificadors d'ús freqüent són els següents:
- d - S'utilitza per a valors enters.
- f - S'utilitza per al nombre flotant.
- c - S'utilitza per al valor d'un sol caràcter.
- s - S’utilitza per a cordes.
Utilitzant una sola scanf () funció, es pot prendre una o diverses entrades de l'usuari.
El scanf () La funció pren l'entrada de l'entrada estàndard (teclat) i emmagatzema el valor en una variable. La funció espera l'entrada de l'usuari fins que l'usuari prem la tecla d'inici. El valor introduït s’emmagatzema en una memòria intermèdia. Quan es prem la tecla d'inici, scanf () la funció comença a llegir.
Exemple 1: Entrada sencera
//Example1.c#incloure
intprincipal(){
intjo;
printf ('Introduïu el primer valor enter:');
scanf ('% d', &jo);
printf ('Heu introduït:% d n',Jo);
printf ('Introduïu el segon valor enter:');
scanf ('% d', &jo);
printf ('Heu introduït:% d n',Jo);
tornar 0;
}
A l'Exemple1.c, hem vist que quan introduïm valors enters i premem la tecla d'inici. El scanf () La funció pren el valor i l’emmagatzema a la variable. Si introduïm els valors separats per espai, la funció torna quan es troba espai, però els valors després de l'espai romanen a la memòria intermèdia d'entrada. Per això el segon scanf () La funció no esperarà l'entrada de l'usuari, sinó que pren l'entrada del buffer.
Exemple 2: entrada d'un sol caràcter
//Example2.c#incloure
intprincipal(){
charc;
printf ('Introduïu un caràcter:');
scanf ('% C', &c);
printf ('Heu introduït:% c n',c);
tornar 0;
}
A Example2.c, ho hem vist quan ho fem servir % c especificador, el scanf () La funció només pren un caràcter, fins i tot si hem introduït més d'un caràcter.
Exemple 3: entrada d'un sol caràcter (diverses vegades)
//Example3.c#incloure
intprincipal(){
charc;
printf ('Introduïu el primer caràcter:');
scanf ('% C', &c);
printf ('Heu introduït:% c n',c);
printf ('Introduïu el segon caràcter:');
scanf ('% C', &c);
printf ('Heu introduït:% c n',c);
tornar 0;
}
Exemple 4 :
//Example4.c#incloure
intprincipal(){
charc;
printf ('Introduïu el primer caràcter:');
scanf ('% C', &c);
printf ('Heu introduït:% c n',c);
printf ('Introduïu el segon caràcter:');
scanf ('% C', &c);
printf ('Heu introduït:% c n',c);
tornar 0;
}
Exemple 5: entrada de cadena
//Example5.c#incloure
intprincipal(){
charnom[15];
printf ('Introdueixi el seu nom: ');
scanf ('% s',nom);
printf ('Heu introduït:% s n',nom);
tornar 0;
}
Funció getc ()
Sintaxi: int getc (flux FILE *)
getc () La funció s'utilitza per llegir un caràcter del punter FILE (flux). Per llegir des del teclat, hem d’utilitzar stdin . Aquesta funció retorna un valor enter de caràcter llegit.
Exemple 6:
//Example6.c#incloure
intprincipal(){
charc;
printf ('Introduïu el primer caràcter:');
mentre((c= getc (stdin))==' n');
printf ('Heu introduït:% c n',c);
mentre( getc (stdin)! =' n');
printf ('Introduïu el segon caràcter:');
mentre((c= getc (stdin))==' n');
printf ('Heu introduït:% c n',c);
tornar 0;
}
Funció getchar ()
Sintaxi: int getchar (buit)
getchar () funció és la mateixa que getc () . L’única diferència és que getc () la funció es pot llegir des de qualsevol flux d'entrada, mentre que getchar () La funció només es llegeix des de l'entrada estàndard.
Exemple 7:
//Example7.c#incloure
intprincipal(){
charc;
printf ('Introduïu el primer caràcter:');
mentre((c= getchar ())==' n');
printf ('Heu introduït:% c n',c);
mentre( getchar ()! =' n');
printf ('Introduïu el segon caràcter:');
mentre((c= getchar ())==' n');
printf ('Heu introduït:% c n',c);
tornar 0;
}
Conclusió
En aquest article, hem vist com s’utilitzen les funcions d’entrada en llenguatge C. Totes aquestes funcions es prenen de la memòria intermèdia d’entrada i quan fem servir aquestes funcions diverses vegades, hem d’esborrar la memòria intermèdia. En cas contrari, les funcions no esperaran l'entrada de l'usuari i prendran l'entrada del buffer.