CIN.Ignora in C ++

CIN.Ignora in C ++

Per ignorare o rimuovere single o forse più lettere dal buffer di input usando la CIN.Ignora () metodo. Forse dobbiamo rimuovere il buffer indesiderabile in modo che i dati successivi siano archiviati nel contenitore previsto anziché nella cache della variabile precedente. Ad esempio, dobbiamo fornire un array o una stringa di caratteri dopo aver inserito il comando CIN. Di conseguenza, dobbiamo svuotare il buffer di input; Altrimenti, il tampone della variabile precedente sarebbe occupato. Poiché la cache dell'elemento precedente manca di spazio per conservare nuovi dati, premendo il pulsante "Immettere" subito dopo che l'ingresso iniziale ignora l'ingresso successivo del contenitore. Cominciamo con gli esempi della CIN.Ignora () funzione con il lancio di nuovi file C ++ tramite la shell del terminale. Il file deve essere creato tramite le istruzioni touch e il nome del file. L'editor "Nano" di Ubuntu è stato utilizzato finora per aprire il file per modificare.

Esempio 01:

All'applicazione del comando nano, ignora.Il file CC verrebbe aperto nell'editor. È ora di iniziare il nostro primo esempio. In primo luogo, esamineremo il codice C ++ senza usare la CIN.Ignora () funzione. Quindi, l'abbiamo avviato con due librerie di intestazione, io.e., Vector e iostream. Lo spazio dei nomi viene utilizzato dopo. La funzione principale () viene avviata con la dichiarazione di una variabile intera "num" e array di tipo di carattere "STR" della dimensione 100 utilizzata per archiviare un valore di stringa. L'istruzione Cout chiede a un utente di aggiungere un valore intero e un tipo di stringa. L'istruzione CINA viene utilizzata per mettere il valore intero a "num" variabile e CIN.getline () viene utilizzato per ottenere i valori del tipo di stringa inseriti da un utente per salvarlo nella variabile "STR" fino a 100 caratteri. L'istruzione Cout successiva viene utilizzata per stampare il valore intero e stringa inserito dall'utente sulla shell.

#includere
#includere
Utilizzo dello spazio dei nomi std;
principale()
int num;
Char Str [100];
cout << "Please add one Integer and one String value:\n";
CIN >> num;
Cin.getline (STR, 100); // prendi una stringa
cout << "Number :" << num << ", String: " << Str << endl;

Ora, il codice è stato compilato ed eseguito. L'utente ha inserito due valori separati da uno spazio, i.e., intero e stringa. Entrambi i valori sono stati stampati come specificato.

Al momento dell'esecuzione, l'utente ha aggiunto 1 valore e premuto ENTER. L'output mostra un valore in cambio e il valore della stringa è vuoto.

Nella terza esecuzione, un utente ha aggiunto un valore di stringa senza aggiungere un valore intero. In cambio, l'output mostra il valore 0 per il numero e null per la stringa.

Aggiorniamo il codice aggiungendo "CIN.Ignora () "funzione dopo l'istruzione Cin. Ci vogliono due argomenti. Uno è l'intestazione delle dimensioni del flusso numerico_limits per cancellare la cache del buffer dopo il 1 ° valore e una nuova linea avvincente I.e. "\N". Quindi, la prossima variabile "STR" otterrà il valore dopo che l'utente arriverà alla riga successiva.

#includere
#includere
Utilizzo dello spazio dei nomi std;
principale()
int num;
Char Str [100];
cout << "Please add one Integer and one String value:\n";
CIN >> num; // Cancella buffer prima di prendere una nuova linea
Cin.Ignora (numeric_limits:: max (), '\ n');
Cin.getline (STR, 100); // prendi una stringa
cout << "Number :" << num << ", String: " << Str << endl;

Un utente ha aggiunto due valori con uno spazio. Dopo aver premuto Invio, un utente ha aggiunto un altro valore. Di conseguenza, l'output mostra il primo valore intero e il valore stringa aggiunto nella riga successiva. Il CIN.Ignore () prenderà il primo valore prima dello spazio e il secondo valore dalla riga successiva dopo aver cancellato la cache del buffer. Puoi vedere, ha ignorato il valore della stringa "ignorare" dalla prima riga di input.

Esempio 02:

Ora abbiamo dato un'occhiata a un altro esempio. Alcuni file di intestazione sono stati aggiunti prima della funzione principale (). All'interno di una funzione, il ciclo while continua a eseguire alcune dichiarazioni. Vengono dichiarate tre variabili interi e l'istruzione Cout chiede di aggiungere input in quelle variabili. L'istruzione CINA salva i valori di input alle variabili e l'istruzione "if" viene utilizzata per verificare se il primo valore è uguale a 0 o meno. Se sì, uscirà immediatamente al programma. Altrimenti, il programma continua. Il CIN.L'istruzione Ignore () è qui per cancellare la cache prima della riga successiva e l'istruzione Cout visualizzerà i valori input.

#includere
#includere
#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()
while (vero)
int n1, n2, n3;
cout << "Please Type Space-separated 3 Numbers: " << endl;
CIN >> N1 >> N2 >> N3;
if (n1 == 0) usit (exit_success);
Cin.Ignora (numeric_limits:: max (), '\ n');
cout <<"1st: "<
restituire exit_success;

Dopo aver eseguito questo esempio di codice, l'utente ha aggiunto tre valori. Il primo valore non è 0; Viene visualizzato il 1 °, il 2 ° e il 3 °. Il ciclo "while" continua di nuovo e l'utente aggiunge 0 come primo valore intero. In cambio, il programma è uscito senza ulteriore esecuzione.

Esempio 03:

L'ultimo esempio è prendere variabili di tipo a due caratteri come input dall'utente. Tra i due CIN.Ottieni () linee per prendere i valori, abbiamo utilizzato la CIN.Ignora () funzione per cancellare la cache del buffer quando si incontrano lo spazio. Se l'utente aggiunge una stringa, CIN.get () prenderà solo il suo iniziale e Cout lo visualizzerà secondo il codice seguente.

#includere
#includere
#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()
char v1, v2;
cout << "Type Two words: " << endl;
v1 = cin.Ottenere();
Cin.Ignora (numeric_limits:: max (), ");
v2 = cin.Ottenere();
cout << "Initials of both words are: "<restituire exit_success;

Dopo l'esecuzione, l'utente ha aggiunto due parole mentre l'istruzione Cout visualizza solo le iniziali.

Conclusione:

Quindi, questo riguardava l'uso della CIN.Ignora () funzione in C ++ per cancellare i buffer della cache. Abbiamo usato lo spazio e i caratteri della riga successiva come delimitatori. Gli esempi implementati sono abbastanza facili da imparare e capire. Pertanto, siamo sicuri che prenderà aiuto da tutti gli esempi.