を使用してファイルからデータを読み取っていましたwifstream
txtファイルは次のようになります。
1,2,3,4,5,6,7
2,3,4,5,6,7,8
...
...
各番号はプログラムに必要なIDであり、コンマは区切り文字です。これが私のコードです
wifstream inputFile(FILE_PATH);
if(inputFile)
{
wchar_t regex;
int id;
while(inputFile)
{
inputFile>>id;
inputFile.get(regex);
cout << id << ", ";
}
inputFile.close();
}
このコードは完全に正常に機能します。一度に1行を読み取る読み取りスキームを変更するまでは、ストリームのバッファーがデータを1回ポップしている間に行からデータを読み取ることができるように、その行で同様のことを実行したいと考えていました。上記のように読まれています。しかし、私はそれを機能させることができません。これが私のコードです
wifstream inputFile(FILE_PATH);
wstring line;
if(inputFile)
{
while(!inputFile.eof())
{
std::getline(inputFile, line);
for(int i=0; i<line.length(); i+=2)
{
int id;
wchar_t regex;
wstringstream(line)>>id; // doesn't work as it keep getting the same number
wstringstream(line).get(regex);
cout << id << ", ";
}
cout << endl;
}
inputFile.close();
}
それが機能しない理由は、ストリームを適切に使用しておらず、最初のインデックスでIDを読み取り続け、何度使用しても進行しないためだと思います>>
(おそらくそれを使用する正しい方法ではありません) )、私も試してみwifstream
ましたが、どちらも使いません。
これをどうやって回避するのですか?