浅谈c++的输入输出
我们先来看看c++的输出语句
#include<iostream>
//using namespace std;//c++库中的东西一般都放在std命名空间中
int main()
{
std::cout<<‘’hello world‘’;//一般cout来表示输出,这个时候就需要说明是std库中的cout,才能使用它的功能
return 0;
}
效果如下
我们再来看看c++中的换行是如何实现的
首先第一种换行方式和c中是相同的就是在要输出的语言后面加\n
这个我们就不做赘述,直接来看效果
我们可以清楚的看到我们通过在要输出的内容后面加\n实现了换行的效果
第二种方式:c++特有的换行的方式
#include<iostream>
//using namespace std;//c++库中所有东西都是放在std命名空间中
int main()
{
std::cout << "hello world\n"<<std::endl;//通过在结尾加上endl来实现换行(注意为endl不为end一奥),因为这个功能还是属于iostream,所有前面加上std::
getchar();
return 0;
}
我们来看输出结果
观察光标的位置,我们可以看到我们通过换行语句,实现了两次换行
接下来我们来看一个东西#include<iostream>
//using namespace std;//c++库中所有东西都是放在std命名空间中
int main()
{
std::cout << "hello world\n"<<std::endl;//通过在结尾加上endl来实现换行(注意为endl不为end一奥),因为这个功能还是属于iostream,所有前面加上std::
int i = 1;
double d = 1.11;
std::cout << i << " " << d << std::endl;//我们可以通过这种格式来输出不同的类型变量
getchar();
return 0;
}
std::cout是可以自己识别你的类型变量的,所以不用在后面写什么%c,%d之类的
那么有的聪明的小朋友肯定会问了:“哎呀 这个每次都要写std:cout来实现输出 ,好麻烦呀”
哎,确实有点麻烦,所以在日常练习的时候,当你不在乎跟库名冲突的情况下,你可以把他全展开
那么代码就变成下面这样
#include<iostream>
using namespace std;//c++库中所有东西都是放在std命名空间中,库全部展开奥,但是是在练习情况下,不在乎和库名冲突的情况
int main()
{
cout << "hello world\n"<<std::endl;//通过在结尾加上endl来实现换行(注意为endl不为end一奥),因为这个功能还是属于iostream,所有前面加上std::
int i = 1;
double d = 1.11;
cout << i << " " << d << std::endl;
getchar();
return 0;
}
你看 也能实现同样的输出结果
但当你定义了一个和库名产生冲突的变量的时候,就会报错
编译器就会指出你的cout不明确
那就有聪明的小朋友问了“我既想定义和库名相同的变量,还想避免冲突,该怎么实现呐?”
哎,不要着急
两种避免冲突的方式
第一种就是上面的那种方法,当你把std库全部展开的时候,那你在后面书写时就要加上std::cout 或者std::endl等等类似的语句,表明你使用的是库里面的功能
第二种就是部分展开了,比如我们要使用cout,那么我们就在开头加上using std::cout;表示你展开的只是std库中这个功能的部分
endl也是同理,在开头加上using::endl,表示你展开的就是std库中endl的部分
那么在后面的使用过程中,以下面这种格式进行书写就可以了
说完输出我们来说说输入
c++中用cout来实现输出,用cin来实现输入
所以一般情况下常用的库里面的一些对象或者类型可以展出来
工程中就比较推荐第二种的展开方式,对要使用的库进行部分展开
这里提一下,一般比较老的编译器,像VC6.0这种,头文件可能会写为<iostream.h>,这点还是要留意一下,但是现在市面上大多数的编译器是不支持这种写法的