我正在为学校工作 c++,只是无法理解为什么在我输入之后,它忽略了第一个单词。我已经尝试在这里找到解决方案,因为我看到了有关它的主题,但没有一个对我有帮助。 简单地说,只有第一个输入是可以的。所有其他的开头都缺少 1 个字。
代码如下:
void vozilo::Unos() {
// Marka vozila
cout << "Unesite marku vozila (do 50 karaktera): ";
markaVozila = new char[50];
cin.ignore();
cin.getline(markaVozila, 50);
// Broj sasije
cout << "Unesite broj sasije (do 20 karaktera): ";
brojSasije = new char[20];
cin.ignore();
cin.getline(brojSasije, 20);
cout << endl << endl;
}
https://pastebin.com/hkLW77HX - 完整代码。
问题出在哪里
答案 0 :(得分:0)
有必要在读取前使用 cin.ignore
使用 cin.get()
来清理缓冲区。
void vozilo::Unos() {
// Marka vozila
cout << "Unesite marku vozila (do 50 karaktera): ";
markaVozila = new char[50];
cin.ignore();
cin.get(markaVozila, 50);
// Broj sasije
cout << "Unesite broj sasije (do 20 karaktera): ";
brojSasije = new char[20];
cin.ignore();
cin.get(brojSasije, 50);
cout << endl << endl;
}