Автор: Alex_dp (07.01.2008 в 18:04)
Пожалуйста помогите разобраться с getline :).
Есть код типа приведенного ниже. Мне необходимо вводить символы 1 строчкой, размещая их в buff1, buff2 и в buff3. Ниже приведенный код скомпилированный в Visual C++6.0 позволяет это делать без проблем, т. е. заполнять эти 3 масива вводя символы в 1 строку и ENTER.
Но ЭТОТ ЖЕ КОД скомпилированный в Borland C++ Compiler 5.5 работает по другому: первые 3 символа из строчки помещаются в buff1, но следующие игнорируются. Вместо них пустые строки. Например, если ввести в строку аааbbbccс и нажать ENTER, то при выводе имеем:
Billo vvedeno ааа
Billo vvedeno
Billo vvedeno
Подскажите, пожалуйста, кто-нибудь, в чем проблема? Глюк компилятора или некорректный код? Такую проблему можна было бы наверное ожидать для функции get, но для getline(?) getline же ведь отбрасывет прочитанный символ-ограничитель из потока. Заранее спасибо.
#include <iostream.h>
#include <conio.h>
main()
{
char buff1[4], buff2[4], buff3[4];
cin.getline(buff1, 4);
cin.getline(buff2,4);
cin.getline(buff3,4);
cout<<endl<<"Billo vvedeno "<<buff1<<endl;
cout<<endl<<"Billo vvedeno "<<buff2<<endl;
cout<<endl<<"Billo vvedeno "<<buff3<<endl;
getch();
return 0;
}