#include <iostream>
#include <fstream>
#include <string>
#include <list>
using namespace std;
// ノード構造体
struct Node
{
string name;
int number;
};
int main()
{
ifstream ifs( "data3.txt" ); // data.txt 読み込み
list< Node > gNodeList;
list< Node >::iterator p;
int gNodeNum = 1;
string str;
while( getline( ifs, str ) )
{
Node tmp;
int t;
tmp.number = gNodeNum;
sscanf( str.c_str(), "%s %d", tmp.name.c_str() , &t );
cout << tmp.name.c_str() << " " << tmp.number << endl;
gNodeList.push_back( tmp );
gNodeNum++;
}
Node* pNode;
for( p = gNodeList.begin(); p != gNodeList.end(); ++p)
{
cout << "No." << p->number << " " << p->name.c_str() << endl;
}
return 0;
}
data.txt というようなファイルを読み込んでgNodeListに格納するというようなのをイメージして書いて見たのですが、
実行すると、
実行結果 のように、whileループ内でNode型構造体変数tmpに読み込むまではいいんですが、
それをgNodeListに追加するとメンバのstringの値がすべて同じになってしまいます。
こうなってしまう原因を知りたいです。
どうかよろしくお願いします。