私は。。をしようとしています
Scene.txt から読み取り、計算を行い、stage1.txt に書き込みます
次に、stage1.txt から読み取り、stage2.txt を書き込みます
最後に、stage2.txt を読み取り、stage3.txt を書き込みます。
1と2は問題なく動作します。しかし、よくわかりませんが、なぜ3番目ができないのですか?
freopen を使用して stdin と stdout をリダイレクトし、ポイント 1 から 2 に移動する前に、stdin と stdout の両方を閉じました。次に、別のファイルで再度 freopen を使用しました。
stringstream を使用すると問題が発生すると思われますが、自信を持って言えません。
freopen("scene.txt","r",stdin);
freopen("stage1.txt","w",stdout);
//works fine. writes to stage1.txt
fclose(stdin);
fclose(stdout);
freopen("stage1.txt","r",stdin);
freopen("stage2.txt","w",stdout);
string test;
while(getline(cin,test))
{
if(test=="")
{
cout<<endl;
continue;
}
point p(1);
stringstream s(test);
s>>p.matrix[0]>>p.matrix[1]>>p.matrix[2];
point res;
res=apply_transformation(v,p);
res.print();
}
//it also does read from stage1.txt and writes to stage2.txt
fclose(stdout);
fclose(stdin);
freopen("stage2.txt","r",stdin);
freopen("stage3.txt","w",stdout);
string test3;
while(getline(cin,test3))
{
cout<<"YES"<<endl; //never gets here. cant even read stage2.txt
if(test3=="")
{
cout<<endl;
continue;
}
point p(1);
stringstream s(test3);
s>>p.matrix[0]>>p.matrix[1]>>p.matrix[2];
point res;
res=apply_transformation(P,p);
res.print();
cout<<p.matrix[0]<<" A "<<p.matrix[1]<<" "<<p.matrix[2]<<endl;
//cout<<test<<endl;
}
// above-mentioned loop doesn't work. cant read from stage2 and doesn't write anything to stage3.txt
上記のポイント3が機能することを期待していました。しかし、そうではありませんでした。