テキスト ファイルには、次のような形式の行が含まれています。
lSdhmhlN 15479 6694.74 O
szUfGnoI 18760 5275.53 n
ファイルを 1 行ずつ読み取り、そのデータをバッファー変数に入れ、それらの変数を TopicD オブジェクトに格納し、そのオブジェクトを二分探索ツリーに挿入しています。問題は、ファイルの最後の行が 2 回読み取られるため、2 つの同一の TopicD オブジェクトが作成されてツリーに挿入されることです。なんで?
これが私のコードです:
template<class ItemType>
void read( BinarySearchTree<ItemType> & tree )
{
ifstream read( FILE_NAME.c_str() );
if ( read.fail() )
die( "Error opening the file." );
string strbuff;
double dubbuff;
int intbuff;
char chbuff;
while ( !read.eof() )
{
read >> strbuff;
read >> intbuff;
read >> dubbuff;
read >> chbuff;
TopicD buff( strbuff, dubbuff, intbuff, chbuff );
tree.add(buff);
}
read.close();
}