Как мне избавиться от начальных символов ' ' и '\n', если я не уверен, что получу cin перед getline?
Пример:
int a;
char s[1001];
if(rand() == 1){
cin >> a;
}
cin.getline(s);
Если я поставлю cin.ignore() перед getline, я могу потерять первый символ строки, так что мой единственный вариант - поместить его после каждого использования 'cin >>' ? Потому что это не очень эффективный способ сделать это, когда вы работаете над большим проектом.
Есть ли лучший способ, чем этот:
int a;
string s;
if(rand() == 1){
cin >> a;
}
do getline(cin, s); while(s == "");
>>
иgetline
. Просто всегда используйтеgetline
. В нынешнем виде ваш код все равно не работает, поскольку вы не проверяете, успешно ли выполненоcin >> a
. - person Kerrek SB   schedule 06.05.2014