Funzione libreria C - scanf ()

Descrizione

La funzione di libreria C. int scanf(const char *format, ...) legge l'input formattato dallo stdin.

Dichiarazione

Di seguito è riportata la dichiarazione per la funzione scanf ().

int scanf(const char *format, ...)

Parametri

  • format - Questa è la stringa C che contiene uno o più dei seguenti elementi -

    Carattere spazio vuoto, carattere non spazio vuoto e specificatori di formato . Un identificatore di formato sarà come[=%[*][width][modifiers]type=] come spiegato di seguito -

Sr.No. Argomento e descrizione
1

*

Questo è un asterisco iniziale opzionale che indica che i dati devono essere letti dal flusso ma ignorati, cioè non sono memorizzati nell'argomento corrispondente.

2

width

Specifica il numero massimo di caratteri da leggere nell'operazione di lettura corrente.

3

modifiers

Specifica una dimensione diversa da int (nel caso di d, i e n), unsigned int (nel caso di o, ue x) o float (nel caso di e, f e g) per i dati puntati dal argomento aggiuntivo corrispondente: h: short int (per d, ien), o unsigned short int (per o, ue x) l: long int (per d, i e n), o unsigned long int (per o, ue x), o doppio (per e, f e g) L: lungo doppio (per e, f e g)

4

type

Un carattere che specifica il tipo di dati da leggere e come si prevede che vengano letti. Vedere la tabella successiva.

specificatori di tipo fscanf

genere Input di qualificazione Tipo di argomento
c Carattere singolo: legge il carattere successivo. Se viene specificata una larghezza diversa da 1, la funzione legge i caratteri di larghezza e li memorizza nelle posizioni successive dell'array passato come argomento. Nessun carattere nullo viene aggiunto alla fine. char *
d Numero intero decimale: numero facoltativamente preceduto da un segno + o - int *
e, E, f, g, G Virgola mobile: numero decimale contenente un punto decimale, eventualmente preceduto da un segno + o - e facoltativamente seguito dal carattere e o E e da un numero decimale. Due esempi di voci valide sono -732.103 e 7.12e4 galleggiante *
o Numero intero ottale: int *
S Stringa di caratteri. Questo leggerà i caratteri successivi finché non viene trovato uno spazio bianco (i caratteri di spazio vuoto sono considerati vuoti, di nuova riga e di tabulazione). char *
u Numero intero decimale senza segno. int senza segno *
x, X Intero esadecimale int *
  • additional arguments- A seconda della stringa di formato, la funzione può aspettarsi una sequenza di argomenti aggiuntivi, ciascuno contenente un valore da inserire invece di ogni tag% specificato nel parametro di formato, se presente. Dovrebbe esserci lo stesso numero di questi argomenti del numero di tag% che si aspettano un valore.

Valore di ritorno

In caso di successo, la funzione restituisce il numero di elementi dell'elenco di argomenti letti con successo. Se si verifica un errore di lettura o viene raggiunta la fine del file durante la lettura, viene impostato l'indicatore corretto (feof o ferror) e, se si verifica prima che i dati possano essere letti con successo, viene restituito EOF.

Esempio

L'esempio seguente mostra l'utilizzo della funzione scanf ().

#include <stdio.h>

int main () {
   char str1[20], str2[30];

   printf("Enter name: ");
   scanf("%s", str1);

   printf("Enter your website name: ");
   scanf("%s", str2);

   printf("Entered Name: %s\n", str1);
   printf("Entered Website:%s", str2);
   
   return(0);
}

Compiliamo ed eseguiamo il programma sopra che produrrà il seguente risultato in modalità interattiva:

Enter name: admin
Enter your website name: www.tutorialspoint.com

Entered Name: admin
Entered Website: www.tutorialspoint.com