如何在不使用命名空间 std 的情况下取消设置 ios::fixed
How to unsetf ios::fixed without using namespace std
Soooo...我想写这段代码 没有 using namespace std;
因为我最近了解到 "polluting the global namespace" 是不好的做法。
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std; // bad practice, trying to remove
int main() {
std::ofstream outFile; // instead use explicit namespaces
/* lots of code */
// eventually I set some manipulators
outFile << std::fixed << std::showpoint << std::setprecision(2);
/* more code */
// later I wish to unset fixed
outFile.unsetf(ios::fixed); // <-- this part
在这个 outFile.unsetf(ios::fixed)
之前,我在没有命名空间的情况下表现很好,它只有在我使用命名空间 std 时才有效。我试图在不使用命名空间的情况下编写以下变体:
outFile.unsetf(ios::fixed)
outFile.unsetf(std::fixed)
outFile.unsetf(ios::std::fixed)
ios
是 std
命名空间内的命名空间吗?然后,下一个对我来说最有意义,但也行不通。
outFile.unsetf(std::ios::fixed)
主要是,我需要一些帮助来使用显式名称空间修复这一行。其次,如果我需要弥合关键的知识差距,一些帮助识别它,也许一些关键字去查找会有所帮助。
使用std::ios_base::fixed
:
outFile.unsetf(std::ios_base::fixed);
Soooo...我想写这段代码 没有 using namespace std;
因为我最近了解到 "polluting the global namespace" 是不好的做法。
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std; // bad practice, trying to remove
int main() {
std::ofstream outFile; // instead use explicit namespaces
/* lots of code */
// eventually I set some manipulators
outFile << std::fixed << std::showpoint << std::setprecision(2);
/* more code */
// later I wish to unset fixed
outFile.unsetf(ios::fixed); // <-- this part
在这个 outFile.unsetf(ios::fixed)
之前,我在没有命名空间的情况下表现很好,它只有在我使用命名空间 std 时才有效。我试图在不使用命名空间的情况下编写以下变体:
outFile.unsetf(ios::fixed)
outFile.unsetf(std::fixed)
outFile.unsetf(ios::std::fixed)
ios
是 std
命名空间内的命名空间吗?然后,下一个对我来说最有意义,但也行不通。
outFile.unsetf(std::ios::fixed)
主要是,我需要一些帮助来使用显式名称空间修复这一行。其次,如果我需要弥合关键的知识差距,一些帮助识别它,也许一些关键字去查找会有所帮助。
使用std::ios_base::fixed
:
outFile.unsetf(std::ios_base::fixed);