我需要编写一个程序,从用户读取他将输入多少个句子,然后用户将这些句子写入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;
}