Как собрать пользовательский ввод для двумерного массива c-string в C ++? - PullRequest
0 голосов
/ 24 октября 2019

Я работаю над проблемой домашней работы, которая требует, чтобы я собрал вводимые пользователем данные, чтобы заполнить двумерный массив c-строк длиной не более 20 предложений и максимум 81 символ в каждом. Хотя я понимаю, как инициализировать массив, я не могу перестать собирать входные данные от пользователя рано, и вынужден постоянно нажимать Enter, чтобы завершить программу.

int main()
{
    char sentences[20][81];

    cout << "Enter up to 20 sentences - when done, Press ENTER: ";
    input(sentences);



    cout << "\nPress any key to continue...";
    _getch();
    return 0;
}

void input(char str[20][81]) //This is our function to collect user sentence input
{
    for (int i = 0; i < 20; i++)
    {
        cin.getline(str[i], 81, '\0');
        if (str[i] == "\0")
            break;
    }
}

Я ожидал, что cin.getlineполучить сбор каждой строки (максимум 81 символ, включая ноль) от пользователя, а затем, увидев нажатие клавиши ввода, собрать следующую строку, останавливаясь только при вводе 20 строк или при нажатии дважды на строку ввода (делая все, что бы str [i]== '\ 0').

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...