3.流的输入/输出

在Cpp中,通常使用cin和cout来做一个流的输入和输出,同时也理解一下作用域空间的概念

当想在控制台输出一句话的时候就要用到输出流.

#includ 
int main(){
using namespace std;
cout << "我想吃苹果" << endl;
}

使用上面代码,就可以在控制台输出"我想吃苹果"这句话了,首先是引入了iosteam头文件,其次声明了cout对象所在的命名空间std,使得cout在全局中可以使用.

而endl表示清空输出槽,并且换行.

这里要说明一下endl和\n的区别:

endl:输出流有一个输出槽,里面存放的待输出的数据,而当我们使用endl的时候就会将输出槽中的所有数据发送到设备(控制台),这就是清槽,然后会换行.

\n:它是一个转义字符,当被输出时会被转换成\xxxx,然后被一起放入到输出槽中,等待输出.

这下就很明显了,endl是一条函数指令,当它发送命令的时候就会将输出槽清空并且输出到设备,而\n仅仅只是一个转义字符.

输出槽的特性,当输出槽没有收到刷新指令或者未满时会继续接收数据,方便一次输出,所以当使用\n的时候并不能一定保证会立马输出到设备.

std 是 standard 的缩写,意思是“标准命名空间”。

对于不带.h的头文件,所有的符号都位于命名空间 std 中,使用时需要声明命名空间 std;对于带.h的头文件,没有使用任何命名空间,所有符号都位于全局作用域。

这里cout是一个输出流的对象(工具),Cpp中引入的iosteam头文件并不包含该函数的原型,而是将其原型放入到了一个叫std的空间中,std中包含了很多头文件中的对象原型,而如果要使用其中的对象原型和其函数就必须声明,最简单的就是上面一种方法.

#includ 
int main(){

//使用指定的对象原型
using namespace std::cout;

//或者在使用时指定对象原型
std::cout << "ABCC" << std::endl;

}

当然不可能频繁使用第一种方法,因为这样会将所有的关键字全部编译为std中原型的变量名,最好是使用下面两种方法,using编译指令去指定要使用的对象,和Java中包的概念非常类似(简单理解).

有了输出就有输入,cout作为输出流可以输出字符串(不仅仅是字符串),同时就可以有输入流输入.

通过cin可以从控制台输入数据到输入流,并且读取或者赋值给相应的变量.

#includ 
int main(){

using namespace std;

cout << "请输入你的年龄(整数)____\b\b\b\b" << endl;

int age;

//将输入的数据赋给变量
cin >> age;

cout << "您的年龄为:" << age << endl;

return 0;
}

你可能感兴趣的:(C,算法,前端)