C++初探(二)

41 阅读1分钟

系统 I/O

#include <>#include "" 的区别:

  • #include "" 表示从当前目录开始寻找
  • #include <> 表示从环境变量中寻找

iostream: 标准库所提供的 IO 接口,用于用户交互

  • 输入流: cin; 输出流: cout / cerr / clog
  • 输出流的区别: 1. 输出目标(可以重定向); 2. 是否立即刷新缓冲区
  • 缓冲区与缓冲区刷新: std::flush; std::endl

名字空间: 用于防止名称冲突

  • std 名字空间
  • 访问名字空间中元素的 3 种方式: 域解析符 ::; using 语句; 名字空间别名
  • 名字空间与名称改编 (name mangling)
namespace NameSpace1
{
    void fun()
    { }
}

namespace NameSpace2
{
    void fun()
    { }
}

int main()
{
    NameSpace2::fun();
}

int main()
{
    using namespace NameSpace1;
    fun();
}

int main()
{
    namespace ns1 = NameSpace1;
    ns1::fun();
}

C/C++ 系统 IO 比较

  • printf: 使用直观, 但容易出错
  • cout: 不容易出错, 但书写冗长
  • C++ 20 格式化库: 新的解决方案