Проблема такова. При первом вызове getline, он автоматически сам считывает первое значение "", т. е. пустую строку. С чего бы? До этого вводил с клавиатуры число cin >> numOfDir.
string buff;
for (int i = 0; i <= numOfDir; i++)
{
getline( cin, buff );
list.push_back( buff );
}
Нашел решение, numOfDir объявлена как глобальная переменная, и в функцию я ее не передавал. Когда передал ее по указателю, заработала. Но так и не понятно почему? ведь глобальная переменная может быть вызвана из любого места?