Cin.ignoruj ​​w C ++

Cin.ignoruj ​​w C ++

Aby zignorować lub usunąć pojedyncze, a może więcej liter z bufora wejściowego za pomocą CIN.ignor () metoda. Może musimy usunąć niepożądany bufor, aby następne dane były przechowywane w zamierzonym pojemniku, a nie pamięć podręczna zmiennej poprzedniej. Na przykład musimy podać tablicę znaków lub ciąg po wprowadzeniu polecenia CIN. W rezultacie musimy opróżnić bufor wejściowy; w przeciwnym razie bufor poprzedniej zmiennej byłby zajęty. Ponieważ pamięć podręczna poprzedniego elementu nie ma miejsca na zachowanie świeży. Zacznijmy od przykładów CIN.Funkcja ignor () z uruchomieniem nowych plików C ++ za pośrednictwem terminalu powłoki. Plik należy utworzyć za pomocą instrukcji dotyku i nazwy pliku. Do tej pory użyto edytora Ubuntu „Nano”, aby otworzyć plik do edycji.

Przykład 01:

Po zastosowaniu polecenia Nano, zignoruj.plik CC zostałby otwarty w edytorze. Czas rozpocząć nasz pierwszy przykład. Po pierwsze, przyjrzymy się kodzie C ++ bez użycia CIN.ignor () funkcja. Zaczęliśmy więc od dwóch bibliotek nagłówka, ja.mi., wektor i iostream. Następnie przestrzeni nazw jest wykorzystywana. Funkcja main () rozpoczyna się od deklaracji zmiennej liczb całkowitych „NUM” i tablicy typu znaków „Str” w rozmiarze 100 używanym do przechowywania pewnej wartości ciągów. Instrukcja Cout prosi użytkownika o dodanie jednej liczby całkowitej i jednej wartości typu ciągu. Instrukcja CIN służy do umieszczenia wartości całkowitej na zmienną „NUM” i CIN.getline () służy do uzyskania wartości typu ciągów wprowadzonych przez użytkownika, aby zapisać go w zmiennej „Str” do 100 znaków. Następna instrukcja Cout jest wykorzystywana do wydrukowania liczby całkowitej i wartości ciągu wprowadzonej przez użytkownika na powładzie.

#włączać
#włączać
za pomocą przestrzeni nazw Std;
główny()
int num;
Char Str [100];
Cout << "Please add one Integer and one String value:\n";
cin >> num;
Cin.Getline (STR, 100); // weź ciąg
Cout << "Number :" << num << ", String: " << Str << endl;

Teraz kod został skompilowany i wykonany. Użytkownik wprowadził dwie wartości oddzielone przestrzenią, i.mi., Liczba całkowita i ciąg. Obie wartości zostały wydrukowane zgodnie z określonymi.

Po ponownym wykonaniu użytkownik dodał 1 wartość i nacisnął Enter. Wyjście pokazuje jedną wartość w zamian, a wartość ciągu jest pusta.

Po trzeciej wykonaniu użytkownik dodał wartość ciągu bez dodawania wartości całkowitej. W zamian wyjście pokazuje wartość 0 dla liczby i null dla ciągu.

Zaktualizujmy kod, dodając „CIN.ignor () ”funkcja po instrukcji CIN. Wymaga dwóch argumentów. Jednym z nich jest nagłówek rozmiaru strumienia Numeric_limits, aby wyczyścić pamięć podręczną bufora po pierwszej wartości i nowej linii I.mi. "\N". Tak więc następna zmienna „Str” otrzyma wartość po przejściu przez użytkownika do następnego wiersza.

#włączać
#włączać
za pomocą przestrzeni nazw Std;
główny()
int num;
Char Str [100];
Cout << "Please add one Integer and one String value:\n";
cin >> num; // wyraźny bufor przed przyjmowaniem nowej linii
Cin.Ignoruj ​​(numeric_limits:: max (), '\ n');
Cin.Getline (STR, 100); // weź ciąg
Cout << "Number :" << num << ", String: " << Str << endl;

Użytkownik dodał dwie wartości do miejsca. Po naciśnięciu ENTER użytkownik dodał inną wartość. W rezultacie wyjście pokazuje pierwszą wartość całkowitą i wartość ciągu dodaną na następnym wierszu. Cin.ignor () weźmie pierwszą wartość przed miejscem i drugą wartością z następnego wiersza po wyczyszczeniu pamięci podręcznej bufora. Możesz zobaczyć, zignorował wartość ciągu „ignoruj” wartość „ignoruj” od pierwszej linii wejściowej.

Przykład 02:

Teraz przyglądaliśmy się innym przykładowi. Niektóre pliki nagłówka zostały dodane przed funkcją Main (). W funkcji pętla While nadal wykonuje niektóre stwierdzenia. Trzy zmienne całkowite są zadeklarowane, a instrukcja Cout prosi o dodanie danych wejściowych do tych zmiennych. Instrukcja CIN zapisuje wartości wejściowe na zmienne, a instrukcja „jeśli” jest używana do sprawdzenia, czy pierwsza wartość jest równa 0, czy nie. Jeśli tak, natychmiast wyjdzie z programu. W przeciwnym razie program trwa. Cin.ignor () instrukcja jest tutaj, aby wyczyścić pamięć podręczną przed następnym wierszem, a instrukcja Cout wyświetli wprowadzane wartości.

#włączać
#włączać
#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()
while (true)
int n1, n2, n3;
Cout << "Please Type Space-separated 3 Numbers: " << endl;
cin >> n1 >> n2 >> n3;
if (n1 == 0) exit (exit_success);
Cin.Ignoruj ​​(numeric_limits:: max (), '\ n');
Cout <<"1st: "<
return exit_success;

Po wykonaniu tego przykładu kodu użytkownik dodał trzy wartości. Pierwsza wartość to nie 0; wyświetli 1, 2. i 3. Pętla „While” trwa ponownie, a użytkownik dodaje 0 jako wartość pierwszej liczby całkowitej. W zamian program opuścił bez dalszego wykonania.

Przykład 03:

Ostatnim przykładem jest przyjmowanie zmiennych typu dwóch znaków jako danych wejściowych od użytkownika. Między obiema CIN.get () linie do przyjmowania wartości, wykorzystaliśmy CIN.ignor () funkcja, aby usunąć pamięć podręczną bufora podczas napotkania przestrzeni. Jeśli użytkownik doda dowolny ciąg, CIN.get () przyjmie tylko początkowe, a cout wyświetli go zgodnie z poniższym kodem.

#włączać
#włączać
#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()
Char V1, v2;
Cout << "Type Two words: " << endl;
v1 = cin.Dostawać();
Cin.Ignoruj ​​(numeric_limits:: max (), ");
v2 = cin.Dostawać();
Cout << "Initials of both words are: "<return exit_success;

Po wykonaniu użytkownik dodał dwa słowa, podczas gdy instrukcja Cout wyświetla tylko inicjały.

Wniosek:

Tak więc chodziło o użycie CIN.ignor () funkcja w C ++, aby wyczyścić bufory pamięci podręcznej. Wykorzystaliśmy przestrzeń i kolejne znaki linii jako ograniczniki. Wdrożone przykłady są dość łatwe do nauczenia się i zrozumienia. Dlatego jesteśmy pewni, że wykorzystacie pomoc ze wszystkich przykładów.