Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Пропускает ввод getline()


Автор: K0SHKA 6.6.2010, 21:01
Здраствуйте,

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

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


Код

#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;
}




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

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

Код

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


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

Автор: Ozerich 6.6.2010, 21:11
Код

#include <iostream>
#include <string>
using namespace std;
int main( void )
{
   string Group[10];
   int stc = 0;
   
   cin >> stc;
   cin.ignore();
   
   for(int i = 0; i < stc; i++)
   {
      cout << i+1 << " Введите строку: ";
      getline(cin, Group[i], '\n');
   }
   cin.get();
   return 0;
}

Автор: K0SHKA 6.6.2010, 21:18
Спасибки  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)