I have a problem with inputting sentences to char or string.
std::string STabPytania;
bool OK=true;
void pobieranie()
{
cout << "Podaj ilosc pytan :";
cin >> iloscP;
for (pytanie = 1; pytanie <= iloscP; pytanie++)
{
cout << "__________________________________________________________";
cout << "\n Napisz tresc pytania nr" << pytanie << " :";
std::getline(cin, STabPytania);
cout << "\n Podaj ilosc odpowiedzi dla: " << pytanie << " pytania:";
cin >> iloscO;
for (odpowiedzi = 1; odpowiedzi <= iloscO; odpowiedzi++)
{
cout << "\n Napisz tresc odpowiedzi nr" << odpowiedzi << " :";
cin >> TabOdpowiedzi[pytanie][odpowiedzi];
}
}
}
But when it comes to asking me for sentence program skips to next instruction without waiting for me input, why?
cin
some times create issues because of \n
character in the buffer. So clean that each time with cin.ignore (std::numeric_limits<std::streamsize>::max(), '\n');
like below:-
void pobieranie()
{
cout << "Podaj ilosc pytan :";
cin >> iloscP;
cin.ignore (std::numeric_limits<std::streamsize>::max(), '\n');
for (pytanie = 1; pytanie <= iloscP; pytanie++)
{
cout << "__________________________________________________________";
cout << "\n Napisz tresc pytania nr" << pytanie << " :";
std::getline(cin, STabPytania);
cout << "\n Podaj ilosc odpowiedzi dla: " << pytanie << " pytania:";
cin >> iloscO;
cin.ignore (std::numeric_limits<std::streamsize>::max(), '\n');
for (odpowiedzi = 1; odpowiedzi <= iloscO; odpowiedzi++)
{
cout << "\n Napisz tresc odpowiedzi nr" << odpowiedzi << " :";
cin >> TabOdpowiedzi[pytanie][odpowiedzi];
cin.ignore (std::numeric_limits<std::streamsize>::max(), '\n');
}
}
}