Espereu l'entrada d'usuari: idioma C.

Wait User Input C Language



Al llenguatge de programació C hi ha algunes funcions d’entrada. Mitjançant aquestes funcions, podem esperar l’entrada de l’usuari. En aquest tutorial parlarem detalladament de les funcions d’entrada.

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.