Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: 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;
}


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: