int main()
{
int n;
cin>>n;
string str1[n];
for(int i=0;i<n;i++)
getline(cin,str1[i]);
return 0;
}
Я написал код для ввода n строк, но код принимает только (n-1) строки в качестве входных данных. В чем причина этого?Функция getline() в C++ принимает 1 меньше ввода
Связанный с этим вопрос содержит исправление. Связанный с этим вопрос: http://stackoverflow.com/questions/21567291/why-does-stdgetline-skip-input-after-a-formatted-extraction. Исправить: добавить 'std :: cin.ignore (std :: numeric_limits :: max(), '\ n')' после 'cin >> n;'. –
@ Robᵩ спасибо, решил мою проблему. –
[OT] 'string str1 [n];' - массив переменной длины, а не стандартный. Вы можете изменить его на 'std :: vector str1 (n);' –
NathanOliver