как вводить предложения в массив указателей с помощью struct c ++ - PullRequest
0 голосов
/ 07 апреля 2019

Мне нужно написать программу, которая читает от пользователя, сколько предложений он введет, а затем пользователь записывает предложения в массив массива.каждое предложение (пока пользователь не наберет «\ n») находится в отдельной строке.Я новичок в этом вопросе, поэтому я надеюсь, что вы поймете.Проблема с введением предложений в массив, когда я печатаю массив, я получаю только последнее введенное предложение.Я думаю, проблема в синтаксисе.спасибо за помощь!

#include <new>
#include <fstream>
#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <string.h>

using std::cin;
using std::endl;
using std::cout;
using std::cerr;
using std::exit;
using std::getline;

const int LENGTH = 1000;

struct Sentences
{
    char **_data;
    int _numOfSentences;
};

void readSentences(struct Sentences &sent)
{
    char sentence[LENGTH];

    cin >> sent._numOfSentences;
    sent._data = new (std::nothrow) char *[sent._numOfSentences];
    cin.get();

    if (sent._data == NULL)
    {
        cerr << "Cannot allocate memory";
        exit(EXIT_FAILURE);
    }

    for (int row = 0; row < sent._numOfSentences; row++)
    {
        cin.getline(sentence, LENGTH);
        sent._data[row] = new (std::nothrow) char[strlen(sentence)];
        sent._data[row] = sentence;
    }
}

int main()
{
    struct Sentences sent;

    readSentences(sent);

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