做网站1核1g服务器够吗,简单网页布局的html代码,手机在线做ppt的网站有哪些问题,地区性门户网站是什么意思目录
标准控制台框架
输入输出对象
命名空间 标准控制台框架 头文件 #include iostream 告诉编译器我们要使用iostream库尖括号中的名字指定了某个头文件(header) 入口函数 int main(void) 返回 return 0; 输出语句 std::cout H…目录
标准控制台框架
输入输出对象
命名空间 标准控制台框架 头文件 #include iostream 告诉编译器我们要使用iostream库尖括号中的名字指定了某个头文件(header) 入口函数 int main(void) 返回 return 0; 输出语句 std::cout Hello 0xCC std::endl; 输出运算符运算符左侧为ostream对象运算符右侧为输出内容上述代码等价于std::cout Hello 0xCC; std::cout std::endl;std::endl效果为换行符并且刷新缓冲区 输入语句 std::cin a; 输入运算符运算符左侧为istream对象运算符右侧为输入数据 注释 / 单行注释 //*多行注释*/
输入输出对象 C语言并未定义任何输入输出(IO)语句取而代之包含了一个全面的标准库(standard library)来提供IO机制 iostream 库包含两个基础类型istream 和ostream分别表示输入流和输出流 标准输入(standard input) - cin(istrean)对象 标准输出(standard output) - cout(ostrean)对象 标准错误(standard error) - cerr(警告信息)/clog(运行信息)(ostrean)对象 cerr、clog 和 cout 都是C中用于输出信息的流对象它们有一些区别主要涉及缓冲行为、目标设备和使用场景 缓冲行为 cerr 和 clog 是非缓冲流对象输出会立即被发送到目标设备不会被缓冲起来。这意味着它们的输出是即时的不受缓冲区满或程序结束的影响。cout 是缓冲流对象它的输出会被缓冲起来直到缓冲区满或程序结束时才发送到目标设备。这可以提高输出效率但也可能导致输出在一些情况下不立即显示。 目标设备 cerr 的默认目标设备是标准错误输出通常是屏幕。它主要用于输出错误和警告信息因此不会被重定向到其他设备或文件。clog 的默认目标设备也是标准错误输出通常是屏幕。它主要用于输出运行时信息、调试信息或其他日志信息也可以被重定向到其他设备或文件。cout 的默认目标设备是标准输出通常是屏幕但它可以通过重定向将输出定向到其他设备或文件。 使用场景 cerr 通常用于输出错误和警告信息它的输出是非缓冲的以便尽快显示错误信息不受缓冲区满或程序结束的影响。clog 通常用于输出运行时信息、调试信息或其他日志信息它的输出是缓冲的以提高输出效率但可能不会立即显示。cout 是最常用的输出流对象用于一般的标准输出它的输出是缓冲的可以在合适的时机进行刷新。总结 cerr 用于输出错误和警告信息非缓冲。clog 用于输出运行时信息、调试信息或其他日志信息缓冲。cout 用于一般的标准输出缓冲。在实际使用中根据需要选择适当的输出流对象以满足不同类型的输出要求。 #include iostreamint main()
{std::cout; //std::ostream;std::cerr; //std::ostream;std::clog; //std::ostream;std::cin; //std::istream;std::cout cout std::endl;std::cerr cerr std::endl;std::clog clog std::endl;return 0;
}命名空间 基本概念 命名空间是 C 中用于组织和管理名称的一种机制。它可以将全局作用域分割成不同的区域每个区域可以包含变量、函数、类和其他命名实体。命名空间提供了一种避免名称冲突的方式使得我们可以在程序中使用相同名称的实体而不会发生冲突。注意一个命名空间就定义了一个新的作用域命名空间中的所有内容都局限于该命名空间中 命名空间的定义方法 使用 namespace 关键字定义命名空间语法如下 #include iostreamnamespace CC_STD
{int HP;//内部声明void Fun(int add);
}//外部定义
void CC_STD::Fun(int add)
{CC_STD::HP add;
}int main()
{CC_STD::HP 1;CC_STD::Fun(100);return 0;
}命名空间的使用 使用 using 声明或限定符访问命名空间中的成员。 #include iostreamusing namespace std;int main()
{cout 0xCC endl;return 0;
}使用 using 声明可以将命名空间中的一个或多个成员引入当前作用域使其可直接使用语法如下 #include iostreamvoid cout()
{}int main()
{using std::cout;using std::endl;cout 0xCC endl;std::string;return 0;
}嵌套命名空间 可以在一个命名空间中定义另一个命名空间这称为嵌套命名空间。嵌套命名空间可以进一步组织和管理命名空间中的实体。 namespace outer_namespace
{namespace inner_namespace {// 嵌套命名空间中的声明和定义}
}#include iostreamnamespace CC_TOOLS
{int nVer;namespace CC_IO{int nOutput;void Print();}
}void CC_TOOLS::CC_IO::Print()
{std::cout nOutput std::endl;
}int main()
{CC_TOOLS::CC_IO::nOutput 123;CC_TOOLS::CC_IO::Print();return 0;
}匿名命名空间 匿名命名空间是一个特殊的命名空间其中的实体在当前文件中具有静态生命周期并且对其他文件不可见。它可以用于定义在当前文件中具有本地作用域的实体。 作用范围限定匿名命名空间中定义的变量、函数或类的作用范围仅限于当前文件。其他文件无法直接访问匿名命名空间中的成员。避免命名冲突匿名命名空间可以用于避免与其他文件中的定义发生命名冲突。相同名称的成员在不同的匿名命名空间中是独立的不会相互冲突。匿名命名空间中的成员具有内部链接internal linkage的属性也就是说它们只在当前文件内可见不会在其他文件中引用到。namespace
{// 匿名命名空间中的声明和定义
}#include iostream//匿名命名空间
namespace
{int a 0;void Print(){std::cout a std::endl;}
}int main()
{a 1;Print();return 0;
}命名空间的别名 可以使用 namespace 关键字为命名空间定义别名方便使用和引用。 namespace alias_name namespace_name;#include iostreamnamespace CC_STD
{int a;
}int main()
{//typedef//using//namespace newname oldname;namespace CC CC_STD;CC::a 1;CC_STD::a 2;return 0;
}命名空间的合并 合并在同一个作用域下命名空间合并只在同一个作用域下生效。合并相同名称的命名空间只有具有相同名称的命名空间才能进行合并。合并后成员的可见性合并后具有相同名称的命名空间中的成员在合并的作用域内可见。//main.cpp
#include iostream
#include Header.hppnamespace CC_TOOLS
{int nVer;int nKey;namespace CC_IO{int nInput;int nOutput;}
}int main()
{return 0;
}//Header.hpp
#pragma once
namespace CC_TOOLS
{int nNum;
}