入力ファイル全体を文字列に読み込もうとしています。今私は持っています:
bool DynString::readLine(std::istream& in)
{
if(in.eof())
{
*this = DynString(); // Default string value.
return(false);
}
char s[1001];
in.getline(s, 1001);
// Delete old string-value and create new pBuff string with copy of s
delete [] pBuff;
pBuff = new char[strlen(s) + 1];
DynString pBuff(s);
return(true);
}
bool DynString::readFile(const char filename[])
{
std::ifstream in(filename);
if(! in.is_open() )
{
*this = DynString(); // Default string value.
return(false);
}
// Delete old string-value and
// Read the file-contents into a new pBuff string
delete [] pBuff;
DynString tempString;
return(true);
}
ここで、pBuffはDynStringと呼ばれる動的文字列オブジェクトです。
私がしなければならないと思うのは、一時的なDynStringオブジェクトを作成し、それを一時オブジェクトとして機能させてから、readLineメソッドを使用して一時文字列をテキストファイルの行に割り当てることです。それが完了したら、古い文字列配列「pBuff」を削除してから、tempを新しいpBuff配列にコピーします。
これには、既存のpBuffに一時配列の要素を追加するだけの連結関数を使用する必要がありますか?
これがちょっと紛らわしい場合は申し訳ありませんが、ヘッダーファイルに他のメソッドがありますが、含めるには多すぎます。