gets_s() в цикле съедает первый символ в строке

284
25 сентября 2017, 03:26

Всем доброго времени суток. Вот такой вопрос:

cout << "Введите количество строк, которые хотите ввести -> ";
cin >> m;
    for (int i = 0; i < m; i++)
    {
            cout << "Введите строку -> ";
            cin.ignore();
            gets_s(str);
            pptr = ADDstr(pptr, sz, str);
            sz++;
    }
SHOWstr(pptr, sz);

Программка запрашивает строки у пользователя и потом выводит, после второй итерации цикла у строк пропадает первый символ, теряет его функция gets_s(), но побороть это у меня пока не вышло. Не подскажите как решить эту проблему?

Answer 1

Функция gets_s вызывается с двумя параметрами. Но это неважно, потому что, вообще говоря, порочен сам подход - смешивать С++ и С. Почему бы вам не воспользоваться соответствующими функциями getline?

А если уж так хочется смеси французского с нижегородским - то cin.ignore() нужно вызвать один раз, сразу после cin >> m;.

READ ALSO
RunTime Error на DFS задаче C++

RunTime Error на DFS задаче C++

Первый раз написав решение этой задачи на привычном себе питоне, натолкнулся на ошибку TimeLimit, деваться некуда - переписал на С++, и теперь, на 15-м тесте...

313
Как поймать сигнал переопределенного QGraphicsPixmapItem в слот главного окна?

Как поймать сигнал переопределенного QGraphicsPixmapItem в слот главного окна?

Есть кастомный QGraphicsView, в нем отлавливаю эвенты мыши, чтобы скалировать и панарамировать изображениеВ QGraphicsScene лежит кастомный QGraphicsPixmapItem,...

273
Как удалить последний из тегов с одинаковыми id?

Как удалить последний из тегов с одинаковыми id?

На странице есть несколько тегов с одинаковым id (так получилось)Как при помощи jQuery удалить последний тег?

282
jquery функция $

jquery функция $

Подскажите, что это за способ вызова функции $ и как он работает?

258