Как осуществить ввод вектора с клавиатуры?

Возникла проблема с вводом векторов int и char при заполнении record r, как это правильно осуществить?

#include <stdio.h>

const size_t blockSize = 9;

struct record //запись с данными
{
    float key; //ключ
    vector<int> intData; //должен быть массивом
    vector<char> charData; // должен быть массивом
    float floatData; //инфа
};

struct block //блок
{
    size_t      cnt;                //кол-во записей в блоке
    record      cells[blockSize];   //ячейки блока
    block* prev = nullptr;     //предыдущий элемент
    block* next = nullptr;     //следующий элемент
};

struct blockList //список
{
    block* head = nullptr;     //указатель на голову списка
    block* tail = nullptr;     //указатель на хвост списка
};

int main()
{
    blockList l;
    int N;
    while (1)
    {
        cin >> N;
        if (N == 1)
        {
            cout << "1. Input to the start:" << endl;
            record r;
            cout << "Input key: ";
            cin >> r.key;

            cout << "input intData: ";
            cin >> n;
            for (size_t i = 0; i < n; i++) //один способ
            {
                cin >> K;
                r.intData.push_back(K);
            }
            
            cout << "input charData: ";
            while (cin >> P && P != 'q') r.charData.push_back(P); // второй способ 

            cout << "input floatData: ";
            cin >> r.floatData;

            blockList_add_begin(&l, &r);
            blockList_print(&l);
        }
    }
}

Ответы (0 шт):