如何使用struct c ++将句子输入到指针数组

时间:2019-04-07 15:59:57

标签: c++ pointers struct

我需要编写一个程序,从用户读取他将输入多少个句子,然后用户将这些句子写入struct数组。 每个句子(直到用户键入“ \ 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;
}

0 个答案:

没有答案