コンストラクタとデストラクタで構成される StringList というクラスがあります。私が目指しているのは、プログラムが実行されていない後でも配列内の文字列を保持できるようにすることです。これを行う方法は、コンストラクター関数にファイルから文字列を読み取らせ、それらを文字列配列 (str[]) に格納させることです。デストラクタは、現在の文字列をファイルに保存します。メモリの作成時にファイルからの読み取りと保存に問題があります。各単語を配列内の 1 つの要素にしたい。たとえば、読み取り元のファイルでは、文字列は次のように格納されます。
HELLO
MOM
DAD
FOUR
YELLOW
各単語をスロットにしたい。言い換えると。str[0] = HELLO、str[1] = MOM、str[2] = DAD など。
ここに私のコンストラクタ関数があります:
StringList::StringList()
{
numberOfStrings=0;
str = new string[1000000];
ifstream myfile ("Read.txt");
if (myfile.is_open())
{
for (int i = 0; i < 1000000; i++)
{
getline(myfile,str[i]);
numberOfString++;
}
myfile.close();
}
}
ここでの問題は、 for (int i=0; i<100000;i++) の行です。これが行ったことは、要素が 100000 に達するまで各空白スペースを埋め続けることです。空白を追加して 20 まで埋めます。txt 内の実際の文字列の量まで埋める方法はありますか。ファイル?