Ich ging durch einen Code in meinem Schulbuch, in dem es eine Zeile gibt, deren Funktion es ist, den Eingabepuffer zu löschen (erwähnt als Kommentar im Code).Was bedeutet das Löschen des Eingabepuffers?
Ich konnte seinen Zweck nicht ganz verstehen. Es ist definitiv erforderlich, da seine Entfernung den Konsoleneingabeprozess durcheinanderbringt.
Bitte erklären Sie, was seine Funktion ist und was passiert, wenn ich es entferne.
Ich habe auch versucht mit cin.ignore(); und es funktioniert auch gut. Wie wird die Funktion hier verwendet, ist es ein exakter Ersatz von cin.ignore()?
P.S. In der Schule verwenden wir die ältere Version von C++. Daraus ergibt sich die „.h“ -Erweiterung, clrscr() ;, usw.
#include <iostream.h>
#include <fstream.h>
#include <conio.h>
void main(){
clrscr();
ofstream fout("student.txt", ios::out);
char name[30], ch;
float marks = 0.0;
for(int i = 0; i < 5; i++){
cout << "Student " << (i+1) << ":\tName: ";
cin.get(name,30);
cout << "\t\tMarks: ";
cin >> marks;
cin.get(ch); //for clearing input buffer (This thing!)
fout << name << '\n' << marks << '\n';
}
fout.close();
ifstream fin("student.txt", ios::in);
fin.seekg(0);
cout << "\n";
for(int i = 0; i < 5; i++){
fin.get(name,30);
fin.get(ch); //Again
fin >> marks;
fin.get(ch); //Same
cout << "Student Name: " << name;
cout << "\tMarks: " << marks << "\n";
}
fin.close();
getch();
}
Nein, er läuft die "ältere" Version von C++. Höchstwahrscheinlich verwendet er Turbo C++, das eine vor-standard/nicht-Standard-Version von C++ ausführt. – NathanOliver
@NathanOliver Meine schlechte, tut mir leid. Danke, dass du darauf hingewiesen hast. Sie müssen zugeben, dass "die ältere Version von C++" ziemlich komisch klingt. Ich dachte, er meinte "nicht cpp11 oder cpp14". –
Ich bin ein Anfänger, wenn es um das Programmieren geht. Ja, ich benutze Turbo C++, ich dachte, dass es die ältere Version war, meine schlechte. Wie auch immer, sollte nicht cin.get (ch) eine Zeicheneingabe vom Benutzer nehmen und sie an "ch" übergeben? –