我寫了一段代碼,根據用戶設置的布爾值寫入控制檯或文件。只是想知道是否有可能的數據丟失?
代碼如下所示。
#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的指針,並且取決於布爾值我assinging要麼使用ofstream對象或std ::法院的地址。我唯一擔心的就是文件操作如打開或關閉是否正確完成。由於我是C++新手,請幫助我。同時指出這裏是否有不良的編程習慣。
你試過嗎?它是否像你想要的那樣工作? –
是的,它的工作。 –