C ++ входное предложение

У меня проблема с вводом предложений в char или 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];
}
}
}

Но когда речь заходит о том, чтобы спросить меня о предложении, программа переходит к следующей инструкции, не дожидаясь ввода, почему?

отладки

Код

0

Решение

cin иногда создают проблемы из-за \n символ в буфере. Так чисто, что каждый раз с cin.ignore (std::numeric_limits<std::streamsize>::max(), '\n'); как ниже: —

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');
}
}
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]