系统 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 格式化库: 新的解决方案