//I know it is bad using (namespace std) but I'm editing a "attached project"
// as exercise from my Professor.
//All required libraries: iostream, fstream, sstream, stdlib are included.
stringstream stringas;
ifstream fromfile;
string nickname;
float points;
nickname="";
points=0;
fromfile.open ("top10.txt", ifstream::in);
cout << "Testing contents from file : " << endl;
while (fromfile.good()){
if((char) fromfile.get() != '|' )
{
fromfile.unget();
stringas << (char) fromfile.get();
}
else
{
if(nickname=="")
{
nickname = stringas.str();
//or i want use stringas >> nickname;
stringas.str(string());
}
else
{
stringas >> points;
//Problem starts here (when I use >> operator)
//then I extract all chars from "ss object"
//Why i can't get Others chars from file when
//while(fromfile.good()) starts again?
stringas.str(string());
cout << "Nickname: " << nome << endl;
cout << "Points: " << points << endl;
topplayers.insert(nickname,points);
//topplayers is a Custom(mine) Linked List of
// struct type {string nicks,float scores} defined in private
// in a class(where there is this function).
}
}
}
fromfile.close();
stringstream の >> 演算子を使用すると何が起こるか、および << 演算子を後で再利用できない理由を理解するのを手伝ってください。
私はイタリア人の学生です。英語が下手ですみません。
他の方法でファイルから区切り記号を使用して解析できることは知っていますが、Boost などの変数やライブラリをあまり使用せずに簡単な方法が必要です。
詳細については編集済み:
top10.txt ファイルには以下が含まれます。
t04d|120|simon|240|
出力:
Testing contents from file:
Nickname: t04d
Points: 120
アプリケーションはエラーなしで実行されますが、明らかに画面に印刷されません
Nickname: simon
Points: 240
私が期待したこと。