C++标准输入输出



学习目的


熟悉输入输出的概念及使用方法。



输入输出的概念


输入输出又称I/O(intput/output)操作,输入是向程序提供数据,输入设备可以是键盘,话筒,扫描仪等等….输出是程序对输入的响应,在输出设备上的显示,输出设备可以是屏幕,打印机,音响等….


C++的输入输出是由系统所提供的输入流对象cin和输出流对象cout来完成的。我们在介绍Hello World的时候,就使用cout来完成的。在使用cout的时候,要使用iostream这个头文件。


cout标准输出流,是Console Output的缩写,表示向应用程序控制台输出。


格式为:


cout<<数据1<<数据2<<……<<数据n;


1.<<是输出操作符,用于向cout输出流中插入数据。


2.被输出的数据可以是常量、变量或是一个表达式、函数调用。



输出的运用


1.cout输出


常量可以直接输出,如字符串常量”Hello world”,变量会自动获取变量的值并输出,表达式也可以计算得到它的值并输出,函数调用会获取函数的返回值然后进行输出。


在我们以前所写的程序中,调用名空间的语句都需要在前面加上std::,为了代码简洁,我们可以在头文件的后面添加using namespace std;这样,默认都是在这个名空间下的代码了。后面的代码就不需要再加上std::了,这相当于一个所以需要名空间的对象的全部声明,如果我们只是需要cout,也可以在刚才位置加上using std::cout;


测试代码如下:两种名空间的声明你只需要任选一种就可以了。


input1.png


运行结果如下:可以看到,正如我们刚才所说,所有需要输出的值都被输出了。输出多个数据与单个数据的效果是一样的。


input2.png


我们在第二章的时候也提到过,endl的作用是换行符,它还有另外一种作用,是刷新流缓冲区。我们在使用cin或者是cout时,系统会在内存中开辟一片缓冲区,来存储我们的输入和应用程序的输出。执行cout的时候,系统会先把数据插入到流缓冲区中,直到缓冲区满了或者是遇到了endl,才将缓冲区的数据输入到屏幕上。缓冲区是系统用来暂存数据的一个地方。还有一个操作符也可以刷新缓冲区。如:


cout<<flush;



常用的几个控制符


C++提供控制符控制输出数据的格式。


默认情况下,系统是按照十进制输出的,如果我们将它改变为某种进制输出,这个设置会一直生效,直到你改变为另一种进制。


1. dec


转换为十进制数输入/输出


2. hex


转换为十六进制数输入/输出


3.oct


转换为八进制数输入/输出


运行结果如下:分别将16十六进制输出和八进制输出


input3.png


4.setw (int)


设置输出的宽度


int为输出的宽度,当变量不足以填充这些宽度时,默认空格填充,且默认填充在左边,设置一次仅生效一次。


运行结果如下:2的左边应该有9个空格字符,输出3的时候设置的宽度已经失效了。


注意:如果我们设置的宽度小于数据实际的宽度,该设置就不起作用了。


input4.png


5.setfill (char)  


设置填充字符:你可以选择你想要在数据之外的宽度显示的字符。


6.setprecision (int)


设置浮点数输出的有效数字位数。



输入的运用


cin输入


在C++中,数据的控制台应用程序输出是采用cin来完成的。>>为流输入符,流输入符后面是变量名,多个变量可以使用流输入符连接起来。cin是系统预定义的标准输入流对象,默认是键盘。当程序在运行的过程中,遇到cin,程序会暂停执行,等待用户的输入。当用户输入完成之后,cin会从流中取得数据。如果输入多个数据,下次读入数据就会优先读取上次未读取的数据。


格式如下: 


cin>>变量名1>>变量名2>>……>>变量名n;


1.cin是系统预定义的一个标准输入设备,默认是键盘;


2.使用cin一次可以输入多个变量,用空格、制表符或回车作为输入的两个变量之间的分隔,这三个被称为空白字符。如果你输入的是一个字符串,空白字符是不会输入到字符串里面的。


下面我们来看一下代码:前面的三个输入采用回车换行来输入多个数据,由于前面的十六进制输出没有被改为十进制,依然有效。十进制为1000的显示为十六进制为1750。


input5.png


调试小方法:右击变量名,可以快速改变变量的值和十进制显示。


大家可以看到调试技巧是非常重要的,它能帮助你在遇到问题的时候找到问题的根源,希望大家能够重视调试,能够让你事半功倍。


input6.png


下面我们可以测试一段代码:


string str;
while(cin>>str){
 if(str==”exit”)
{  break; }
cout<<str<<endl;
}  return 0;
}


运行结果如下:你输入什么,就会打印什么,直到输入exit退出这个循环。还有另外一种退出方式:ctrl+c,关于这种方式我们后面讲到文件输入的时候再讲。


input7.png



【本文由麦子学院独家原创,转载请注明出处并保留原文链接】

logo
© 2012-2016 www.maiziedu.com
蜀ICP备13014270号-4 Version 5.0.0 release20160127
有一位课程导师想与你聊聊

免费电话咨询