Проблема с getline() в C++

С++ String getline()

Здраствуйте,

проблема такова

в цикле не считывает строку первую итерацию цикла..


код C++
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
#include <iostream>
#include <string>
using namespace std;
int main( void )
{
string Group[10];
int stc = 0;

cin >> stc;

for(int i = 0; i < stc; i++)
{
cout << i+1 << " Введите строку: ";
getline(cin, Group[i], '\n');
}
cin.get();
return 0;
}



Он пропустит первый итерацию цикла и мы сможем ввести только во вторую итерацию..

например вывод будет примерно таким:

код C++
1:
1 Введите строку: 2 Введите строку:


Как можно сделать чтобы getline(); считывала элемент Group[0] а не переходила сразу на Group[1] ?

Примечание:
SLonoed нет! так в string попадёт только одно слово, чтобы попало всё предложение нужно использовать для char > cin.getline(); а для string > getline();
Ответы:
for(int i = 0; i < stc; i++)
{
cout << i+1 << " enter string: ";
cin >> Group[i];
}
Тут подробное описание причины проблемы: http://augustcouncil.com/~tgibson/tutorial/iotips.html#problems
Добавь cin.ignore(256, '\n'); сразу после cin >> stc;


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.