C++cin&cout细节

Posted ljxt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++cin&cout细节相关的知识,希望对你有一定的参考价值。

一、念念不忘之Hello World.

作为一个程序员,我们第一个程序总会是它。对不对。那么在C++中我们是不是也常常会看到这么一段。

 技术图片

 

 

 

然后我们将这段代码使用helloword.cpp 文件保存起来。并且放入到G盘的code目录中。注意在这里我们可以使用如下命令查看当前文件夹的文件信息.

 技术图片 

我的目录结构如下图所示:

 技术图片

 

 

 最后我们代码的编译执行结果如下:

 技术图片

 

 

 上述案例我们最简单的使用了一下cout 对象进行输出。那么cout具体是做什么的呢。cout其实是c++中的一个标准的输出流。那么在C++中我们如何像C语言中那样使用printf实现各种格式化输出呢。

    1.数字的进制输出 :

    1) 在C++中要实现进制输出。我们需要调用cout对象的std::cout.unsetf() 函数解绑十进制输出。再调用cout.setf()函数绑定其他进制输出 。创建一个hexinc++.cpp代码文件。加入如下代码:

 技术图片

 

 

 

然后编译执行代码,我们得到如下结果:

 技术图片

 

 

 

2) 除了使用这种方式。我们还可以使用c++给我们提供的 iomanip 头文件进行进制的格式化输出。
现在我们创建代码文件hexioman.cpp 文件。加入如下代码:

 技术图片

 

 

 

然后编译、执行。最终得到如下结果:

 技术图片

 

 

 

可见得到的结果是一致的。而且使用起来更加简介方便。

2.通常再输出的时候,除了对整数的进制处理。我们还需要对一些小数的输出做大小的限制。

1.再这里我们首先还是使用 setf / usetf 来实现。 我们创建文件decimal.cpp.加入如下内容:

    技术图片

 

 

 

然后编译执行。我们得到如下结果:

技术图片

 

 

2) 当然有些时候我们需要结连续输出,那么这种情况下我们应该怎么办呢。我们先来看看如下代码:

 技术图片

 

 

编译执行之后得到如下结果:

 技术图片

 

 

由此可以看到,我们导入 iomanip,然后使用setiosflags 、resetiosflags、setprecision这些函数来实现。

二、在前边的篇幅中,我们主要关注了C++中的输出对象cout. 那么现在我们回过头来,如果我们需要输入数据到程序中又该如何呢。现在我们来关注一下cin这个对象。

    首先我们要知道的是cin是C++中的标准输入流。好了,我们来看看最基本的用法。创建一个cinsimple.cpp。然后加入如下代码:

 技术图片

 

 

然后我们编译执行。最终得到如下结果:

 技术图片

 

 

这是最基本的cin的用法。那么注意这里和scanf 函数的区别。在这里我们接收输入时不需要加入引用符号&。 那么cin这个对象还有没有其他的用法呢。看官请继续,我们创建一个cinstr.cpp 的代码文件。加入如下代码,接收输入的字符串:

 技术图片

 

 

然后我们编译执行程序如下:

 技术图片

 

 

我们发现输入的字符串中,空格后边的内容被去掉了。因为cin对象接收输入的时候会以空格为中断。

好了,在本篇笔记中。我们介绍了C++中的输出对象与输入对象。输出对象最主要关注的是数字的进制输出、浮点数的格式化输出。输入对象需要注意两点。第一点是输入的时候不要使用引用符&。第二点是cin的输入会以空格为中断。

老九学堂出品

以上是关于C++cin&cout细节的主要内容,如果未能解决你的问题,请参考以下文章

引用初始化的重要细节

C输入输出

快速输入输出

C++的for循环细节,必看!

C++的一些细节

为啥我们需要绑定 std::cin 和 std::cout?