ユーザーが設定したブール値に応じて、コンソールまたはファイルに書き込むコードを書いています。ちょうどある可能性のあるデータ損失があるかどうかを知りたいですか?
コードは次のようになります。ここで
#include <iostream>
#include <fstream>
int main()
{
bool bDump;
std::cout<<"bDump bool"<<std::endl;
std::cin>>bDump;
std::ostream* osPtr;
std::ofstream files;
if(bDump)
{
files.open("dump.txt");
osPtr = &files;
}
else
{
osPtr = &std::cout;
}
std::ostream& stream = *osPtr;
stream<<"hello";
if(bDump)
{
files.close();
}
return 0;
}
私がのstd :: ostreamにポインタを作成し、私はofstreamのオブジェクトまたはSTD :: coutのいずれかのアドレスをassingingいブール値に依存するのです。オープンまたはクローズのようなファイル操作が適切に行われるかどうかは私の唯一の関心事です。私はC++に新しいので、私を助けてください。また、ここで悪いプログラミングの実践が続いていることを指摘してください。
試しましたか?あなたが望むように動作しましたか? –
ええ、それは働いた。 –