#include<iostream>
#include<string>
#include<cstring>
using namespace std;
void cpp_string();
void cstyle_string();
int main()
{
cpp_string();
cstyle_string();
system("pause");
return 0;
}
void cpp_string()
{
string fName, lName;
char grade;
int age;
cout << "What is your first name?";
getline(cin, fName);
cout << "What is your last name?";
getline(cin, lName);
cout << "What letter grade do you deserve?";
cin >> grade;
cout << "What is your age?";
cin >> age;
cout << "Name: " << fName << ", " << lName << endl;
cout << "Grade: " << grade << endl;
cout << "Age: " << age << endl;
return;
}
void cstyle_string()
{
char fNm[20], lNm[20];
char grade;
int age;
cout << "What is your first name?";
cin.get(fNm, 20).get();
cin.clear();
cout << "What is your last name?";
cin.get(lNm, 20).get();
cout << "What letter grade do you deserve?";
cin >> grade;
cout << "What is your age?";
cin >> age;
cout << "Name: " << fNm << ", " << lNm << endl;
cout << "Grade: " << grade << endl;
cout << "Age: " << age << endl;
return;
}
Ich erhalte Ausgabe alsLaufzeitfehler von cin.get()
What is your first name?demiurge conon
What is your last name?no
What letter grade do you deserve?a
What is your age?22
Name: demiurge conon, no
Grade: a
Age: 22
What is your first name?What is your last name?What letter grade do you deserve?What is your age?Name: ,
Grade: ╠
Age: -858993460
Press any key to continue . . .
aber wenn ich cstyle_string()
in verschiedenen Datei laufen dann immer ich keine Fehler Code perfekt funktioniert.
Ich möchte wissen, warum das passiert?
Sie rufen sowohl 'cpp_string()' als auch 'cstyle_string()' auf. Ruf immer nur eins an. Weil sie die Eingabe verbrauchen. – rustyx
Sie laufen beide zu verschiedenen Zeiten .... Ich meine, zuerst cpp_string() wird dann laufen, nachdem es zurückkehrt, wird cstyle_string() ausgeführt. Es hat gut funktioniert, als ich cin.get() in cpp_string() nicht verwendet habe. Davor habe ich cin >> fname für die Eingabe verwendet und es hat gut funktioniert, aber es braucht nur ein einzelnes Wort, also habe ich get() verwendet, um eine Zeile von Zeichen zu erhalten. Jetzt funktioniert der Code nicht. –