вопрос по с++. cin.getline

программирование С++

в данном случае все нормально, 3 считываю - 3 получаю, а в комментарии уже добавлен цикл и прочее, но почему- то в массив записывается первый просто пустой элемент, как этого избежать?

int main (void) {
setlocale(LC_CTYPE,("Russian"));
int m = 15, p = 3;
if( m > p )
cout<<"Введите строки: ";
char **user_line;
user_line = new char*[p];
for(int i = 0; i < p; i++)
user_line[i] = new char[SIZE];
for(int i = 0; i < p; i++)
cin.getline(user_line[i] , SIZE);
queue_line first(user_line, p);

first.print();

char *user_add_line;
user_add_line = new char[SIZE];
cin.getline(user_add_line, SIZE, '\n');
first.add(user_add_line) ? cout<<"add succesful\n" : cout<<"error\n" ;
cin.getline(user_add_line, SIZE, '\n');
first.add(user_add_line) ? cout<<"add succesful\n" : cout<<"error\n" ;

int user_del_line;
user_del_line = 1;
cout<<"Какую строку изъять из очереди?: "<<user_del_line<<endl;
first.remove(user_del_line);

first.first_element();

first.last_element();

first.print();
system("pause");
return 0;
}




/*
int main (void) {
setlocale(LC_CTYPE,("Russian"));
char end = '1';
int m = 15, p;
while ( end != '0' ) {
cout<<"Начальное кол-во строк: ";
cin>>p;
if( m > p ) {
cout<<"Введите строки: ";
char **user_line;
user_line = new char*[p];
for(int i = 0; i < p; i++)
user_line[i] = new char[SIZE];
for(int i = 0; i < p; i++)
cin.getline(user_line[i] , SIZE);
queue_line first(user_line, p);

first.print();

char *user_add_line;
user_add_line = new char[SIZE];
cin.getline(user_add_line, SIZE, '\n');
first.add(user_add_line) ? cout<<"add succesful\n" : cout<<"error\n" ;
cin.getline(user_add_line, SIZE, '\n');
first.add(user_add_line) ? cout<<"add succesful\n" : cout<<"error\n" ;

int user_del_line;
user_del_line = 1;
cout<<"Какую строку изъять из очереди?: "<<user_del_line<<endl;
first.remove(user_del_line);

first.first_element();

first.last_element();

first.print();
} else {
cout<<"Начальное кол-во строк превышает максимальное!"<<endl;
}
cout<<"Введите число != 0 для подолжения работы. Для завершения программы введите 0: ";
cin>>end;
}
system("pause");
return 0;
}*/
Ответы:
Подайте на вход закоментированной программы следующие и посмотрите на результат:


11 лет назад

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

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

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