【C++基础】第二课:C++的输入与输出

输入,输出,iostream库,命名空间,代码注释

Posted by x-jeff on February 21, 2019

【C++基础】系列博客为参考《C++ Primer中文版(第5版)》C++11标准)一书,自己所做的读书笔记。
本文为原创文章,未经本人允许,禁止转载。转载请注明出处。

1.iostream库

C++语言并未定义任何输入输出(IO)语句,而是使用一个全面的标准库(standard library)来提供IO机制。比如:iostream库

iostream库包含两个基础类型istreamostream,分别表示输入流和输出流。术语“流”(stream)想要表达的是,随着时间的推移,字符是顺序生成或消耗的。

标准库定义了4个IO对象:

  1. cin:标准输入
  2. cout:标准输出
  3. cerr:输出警告和错误信息,也称为标准错误
  4. clog:用来输出程序运行时的一般性信息

实战应用:

1
2
3
4
5
6
7
8
9
#include <iostream>
int main()
{
    std::cout<<"Enter two numbers : "<<std::endl;
    int v1=0,v2=0;
    std::cin>>v1>>v2;
    std::cout<<"The sum of "<<v1<<" and "<<v2<<" is "<<v1+v2<<std::endl;
    return 0;
}

<iostream>头文件

endl是一个被称为操纵符的特殊值。写入endl的效果是:

  • 结束当前行;
  • 并将与设备关联的缓冲区中的内容刷到设备中。缓冲刷新操作可以保证到目前为止程序所产生的所有输出都真正写入输出流中,而不是仅停留在内存中等待写入流。

通过一段代码来加深对endl的理解:

1
2
3
std::cout<<"this ";
std::cout<<"is "<<std::endl;
std::cout<<"an "<<std::endl<<"example"<<std::endl;

输出为:

表达式:在C++中,一个表达式产生一个计算结果,它由一个或多个运算对象和(通常是)一个运算符组成。

  • 输出运算符:<<
  • 输入运算符:>>

2.命名空间

上面代码中,前缀std::指出名字coutendl是定义在名为std命名空间(namespace)中的。

命名空间可以帮助我们避免不经意的名字定义冲突,以及使用库中相同名字导致的冲突。标准库定义的所有名字都在命名空间std中。

std::cout通过使用作用域运算符(::)来显式的指出我们想使用的是定义在命名空间std中的名字cout

3.C++代码的注释

C++中有两种注释:

  • 【单行注释】:以双斜线(//)开始,以换行符结束。当前行双斜线右侧的所有内容都会被编译器忽略,这种注释可以包含任何文本,包括额外的双斜线。
  • 【界定符对注释】:这种注释以/*开始,以*/结束,可以包含除*/外的任意内容(⚠️界定符对注释不能嵌套!),包含换行符。编译器将落在/*和*/之间的所有内容都当作注释。