C++语言学习日志2.26

初入C++:

跟C语言很多都很相似,主要从不同之处学习。

(1)、I/O流控制:流是一种抽象概念,他代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出

        C++中的输出就是cout,我们可以使用插入操作符“<<”向cout输出流中插入字符。

而输入就是cin,用">>"从输入流中抽取字符。

不管把什么基本数据类型的名字或值传给流,他都能懂。

cout可以在一行中串联,也可以分在几行,提高可读性,cin也可以用和cout一样的方式调整行,它自动识别变量位置和类型。比如:

cout<<"My name is John\n";
cout<<"the ID is";
cout<<2;
cout<<endl;
//等效于下面的几种形式1
cout<<"My name is John\n"<<"the ID is"<<2<<endl;
//2
cout<<"My name is John\n"    //行末无分号
    <<"the ID is"
    <<2
    <<endl;

(2)、使用控制符

        流的默认格式输出有时不能满足特殊要求。例如:

double average = 9.400067;
cout << average <<endl;

希望显示的是9.40,即保留两位小数,可是却会显示9.40007,默认显示6位有效位。

        所以可以用控制符,对I/O流的格式进行控制。控制符是在头文件iomanip中定义的对象。可以直接将控制符插入流中,常用控制符所示。如:

        使用控制符时,要在程序头上加上头文件#include<iomanip>。

(3)控制浮点数值显示

        使用setprecision(n)可控制输出流显示浮点数的数字个数,C++默认的输出流值有效位数是6.

        如果是setprecision(n)与fixed合用,可以控制小数点右边的数字个数。fixed是设置定点小数表示法。

        如果与scientific合用,可以控制指数表示法的小数位数。

        例如:

         

 在普通表示的输出中,setprecision(n)表示有效位数。

在确定表示的输出中,setprecision(n)表示小数位数,这就是第七行输出结果的原因。

而在指数形式输出时,setprecision(n)表示小数位数,例如第八行,输出用scientific来表示指数的输出形式,其有效位数沿用上次设置的值8,小数位数截短显示时,进行四舍五入处理。

(4)设置值的输出宽度

        除了使用空格来强行控制输出间隔外,还可以用setw(n)控制符。

如果一个值的显示数需要比setw (n) 确定的字符n更多,就会显示该值的所有字符,

如果比之更少,就会在数字字符前显示空白。它不同于其他控制符,它仅仅影响下一个数值的输出,不会保存。

(5)输出八进制数和十六进制数

        3个常用的控制符是hex、oct和dec,分别对应十六进制、八进制和十进制数的显示,定义一个整数时,如果在之后使用hex、oct,是在原本的十进制数上计算机自动帮你进行进制转化,而不能把它理解成十六进制数或八进制数。

        还有用uppercase可以控制16进制数大写输出。例如:

int number=1001;
cout<<"Hexadecimal:"<<hex<<uppercase<<number<<endl;
//结果显示为
//Hexadecimal:3E9

(6)设置填充字符

        setw可以用来确定显示的宽度。默认时,流使用空格符来保证字符间的正确间隔。用setfill控制符可以确定setw所规定的间隔字符。setfill在头文件iomanip中定义。例如:

 (7)左右对齐输出

        默认时,I/O流左对齐子串,右对齐数值。使用left和right标志,可以控制输出对齐,例如:

 (8)强制显示小数点和符号

        当程序输出下面的代码时:

cout<<10.0/2<<endl;

默认的流会简单的显示2,不会显示小数点,当需要显示小数点时,可以用showpoint标志。

cout<<showpoint<<10.0/5<<endl;
//运行结果为:
//2.00000

默认时,流仅在负数之前显示值的符号,我们可以用showpos来在正数前加正数,例如:

cout<<showpos<<10<<" "<<-20<<endl;
//运行结果为:
//+10 -20

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值