关于C++c语言中的if语句cout语句

C++里面cout.width(4)是什么意思?_百度知道
C++里面cout.width(4)是什么意思?
C++里面cout.width(4)是什么意思?
cout的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁输入和输出并不是C++语言中的正式组成成分。C和C++本身都没有为输入和输出提供专门的语句结构。输入输出不是由C++本身定义的,而是在编译系统提供的I/O库中定义的。
C++的输出和输入是用&流&(stream)的方式实现的。图3.2和图3.3表示C++通过流进行输入输出的过程。
有关流对象cin、cout和流运算符的定义等信息是存放在C++的输入输出流库中的,因此如果在程序中使用cin、cout和流运算符,就必须使用预处理命令把头文件stream包含到本文件中:
& & #include &iostream&
尽管cin和cout不是C++本身提供的语句,但是在不致混淆的情况下,为了叙述方便,常常把由cin和流提取运算符&&&&实现输入的语句称为输入语句或cin语句,把由cout和流插入运算符&&&&实现输出的语句称为输出语句或cout语句。根据C++的语法,凡是能实现某种操作而且最后以分号结束的都是语句。
输入流与输出流的基本操作
cout语句的一般格式为:
& & cout&&表达式1&&表达式2&&&&&&表达式n;
cin语句的一般格式为:
& & cin&&变量1&&变量2&&&&&&变量n;
在定义流对象时,系统会在内存中开辟一段缓冲区,用来暂存输入输出流的数据。在执行cout语句时,先把插入的数据顺序存放在输出缓冲区中,直到输出缓冲区满或遇到cout语句中的endl(或'\n',ends,flush)为止,此时将缓冲区中已有的数据一起输出,并清空缓冲区。输出流中的数据在系统默认的设备(一般为显示器)输出。
一个cout语句可以分写成若干行。如
& & cout&&&This is a simple C++ program.&&&
& & cout&&&This is && //注意行末尾无分号
& & &&&a C++ &
& & &&&program.&
& & && //语句最后有分号
也可写成多个cout语句,即
& & cout&&&This is &; //语句末尾有分号
& & cout &&&a C++ &;
& & cout &&&program.&;
& & cout&&
以上3种情况的输出均为
This is a simple C++ program.
注意,不能用一个插入运算符&&&&插入多个输出项,如:
& & cout&&a,b,c; //错误,不能一次插入多项
& & cout&&a+b+c; //正确,这是一个表达式,作为一项
在用cout输出时,用户不必通知计算机按何种类型输出,系统会自动判别输出数据的类型,使输出的数据按相应的类型输出。如已定义a为int型,b为float型,c为char型,则
& & cout&&a&&' '&&b&&' '&&c&&
会以下面的形式输出:
& & 4 345.789 a
与cout类似,一个cin语句可以分写成若干行。如
& & cin&&a&&b&&c&&d;
& & cin&&a //注意行末尾无分号
& & &&b //这样写可能看起来清晰些
也可以写成
& & cin&&a;
& & cin&&b;
& & cin&&c;
& & cin&&d;
以上3种情况均可以从键盘输入:
1& 2& 3& 4 ↙
也可以分多行输入数据:
在用cin输入时,系统也会根据变量的类型从输入流中提取相应长度的字节。如有
& &char c1,&c2;
& &cin&&c1&&c2&&a&&b;
注意: 34后面应该有空格以便和56.78分隔开。也可以按下面格式输入:
1 2 34 56.78↙ (在1和2之间有空格)
不能用cin语句把空格字符和回车换行符作为字符输入给字符变量,它们将被跳过。如果想将空格字符或回车换行符(或任何其他键盘上的字符)输入给字符变量,可以使用getchar函数。
在组织输入流数据时,要仔细分析cin语句中变量的类型,按照相应的格式输入,否则容易出错。
在输入流与输出流中使用控制符
上面介绍的是使用cout和cin时的默认格式。但有时人们在输入输出时有一些特殊的要求,如在输出实数时规定字段宽度,只保留两位小数,数据向左或向右对齐等。C++提供了在输入输出流中使用的控制符(有的书中称为操纵符),见表3.1。
表 3.1 输入输出流的控制符
设置数值的基数为10
设置数值的基数为16
设置数值的基数为8
setfill(c)
设置填充字符c,c可以是字符常量或字符变量
setprecision(n)
设置浮点数的精度为n位。在以一般十进制小数形式输出时,n代表有效数字。在以fixed(固定小数位数)形式和 scientific(指数)形式输出时,n为小数位数
设置字段宽度为n位
setiosflags( ios::fixed)
设置浮点数以固定的小数位数显示
setiosftags( ios::scientific)
设置浮点数以科学记数法(即指数形式)显示
setiosflags( ios::left)
输出数据左对齐
setiosflags( ios::right)
输出数据右对齐
setiosflags( ios::skipws)
忽略前导的空格
setiosflags( ios::uppercase)
数据以十六进制形式输出时字母以大写表示
setiosflags( ios::lowercase)
数据以十六进制形式输出时宇母以小写表示
setiosflags(ios::showpos)
输出正数时给出&+&号
需要注意的是: 如果使用了控制符,在程序单位的开头除了要加iostream头文件外,还要加iomanip头文件。
举例,&输出双精度数:
& & double a=123.; &// 对a赋初值
1) cout&&a; &输出: 123.456
2) cout&&setprecision(9)&&a; &输出: 123.456789
3) cout&&setprecision(6); &恢复默认格式(精度为6)
4) cout&& setiosflags(ios∷fixed); &输出: 123.456789
5) cout&&setiosflags(ios∷fixed)&&setprecision(8)&&a; &输出: 123.
6) cout&&setiosflags(ios∷scientific)&&a; &输出: 1.
7) cout&&setiosflags(ios∷scientific)&&setprecision(4)&&a; &输出: 1.2346e02
下面是整数输出的例子:
& & int b=123456; &// 对b赋初值
1) cout&&b; &输出: 123456
2) cout&&hex&&b; & 输出: 1e240
3) cout&&setiosflags(ios∷uppercase)&&b; &输出: 1E240
4) cout&&setw(10)&&b&&','&&b; & 输出:& 3456
5) cout&&setfill('*')&&setw(10)&&b; &输出: **** 123456
6) cout&&setiosflags(ios∷showpos)&&b; &输出: +123456
如果在多个cout语句中使用相同的setw(n),并使用setiosflags(ios::right),可以实现各行数据右对齐,如果指定相同的精度,可以实现上下小数点对齐。
【例3.1】各行小数点对齐。
#include &iostream&
#include &iomanip&
int main( )
double a=123.456,b=3.14159,c=-3214.67;
cout&&setiosflags(ios::fixed)&&setiosflags(ios::right)&&setprecision(2);
cout&&setw(10)&&a&&
cout&&setw(10)&&b&&
cout&&setw(10)&&c&&
输出如下:
& 123.46 (字段宽度为10,右对齐,取两位小数)
& -3214.67
先统一设置定点形式输出、取两位小数、右对齐。这些设置对其后的输出均有效(除非重新设置),而setw只对其后一个输出项有效,因此必须在输出a,b,c之前都要写setw(10)。
另外,还有一种控制输出格式的方法,我们将会在后面讲到,感兴趣的读者可以查看:请问C语言中的\\t在C++中怎么表示啊?
请问C语言中的\\t在C++中怎么表示啊?
\在C++中用endl,那么\\t在C++中有特殊的表示么?
楼主,就像楼上说的,转义字符无论是在c/c++都是通用的。\\t是制表符,在C++中通用。
下面,偶来具体解释下\、endl和flush函数的不同。 有提到C++中的流,如cout等:
1、\和endl区别在于:
\只代表换行的转义字符 endl除了代表换行,还紧跟着清除缓冲槽,即清除缓冲区的内容
2、具体\和endl内容的辨析:
要明白\和endl的区别,首先要明白一个概念:输出流。
目前输出流的类型很多,有对文件作为目标输出的,有对显示屏(Console间接输出)进行输出的。也有输出到其他抽象结构的。
cout的意思是console-output:控制台输出. 但是它的机制还远没有我们想的那么简单,&&后面跟着写什么就直接输出到屏幕什么?不是这样的。
就拿cout&&&Hi,zw.\&&&来说,cout代表后面的内容输出到控制台的一个缓冲槽,而不是控制台(黑屏幕的那个).
缓冲槽在什么情况下会把缓冲槽的内容输出到控制台的【屏幕界面】呢?当遇到endl或者其他fflush之类的命令或函数时,缓冲槽里的内容会按照顺序输出到控制台,再由控制台进行转意字符的识别打印。
3、flush函数
在C++中,可以使用flush函数来清空缓冲区,即使缓冲区中的数据不是满的。与endl控制符不同的是,flush函数并不是把光标移到下一行的开头处。
使用flush函数的语法是:
ostreamVar.flush();
这里ostreamVar是输出流变量,例如cout 。
与endl一样,flush可以作为控制符使用。在这种情况下,flush使用在输出语句中,并不加括号。 例如,下面的语句将数据从缓冲区写到标准输出设备:
例:考虑下面的语句,其中num是int类型变量:
cout&&”enter an integer:”;
第一行语句输出文字:“enter an integer:”。在输出这一行文字后,光标停留在冒号后面的位置上。注意,第1行语句的输出首先被送到缓冲区中。如果缓冲区中的数据没有存满,那么这行提示文字就不会显示出来。这时用户也就不知道下一步应该做什么。可以在第1行语句后面使用endl控制符。但是如果这样做,在输出这行文字后,光标将被移到下一行的开头处,用户也就必须在下一行中输入数字。而这样做并不是最恰当的。还可以使用下面的语句替换掉1行语句:
cout&&”enter an integer:”&&
在这种情况下,文字行“enter an integer:”,即使在缓冲区数据没有存满时也会立即被输出到标准输出设备上。而且,在输出这行文本后,光标将停留在分号的下一个位置上。用户将在分号后面输入数字。
其他回答 (1)
你什么意思?
'\'在C++中用'\\'表示
'\\t'在C++中表示是'\t'&
相关知识等待您来回答
编程领域专家页面导航:
→ 正文内容 cout
浅析C++中cout的运行机制
关于C++中cout的使用,相信大家再熟悉不过了,然而对于cout是如何输出的?输出的机制是啥,需要进一步的了解。本章娓娓道来。前几天在网上看到这么一个题目
代码如下:#include &iostream&int hello1();int hello2();
int main() {&&& int a,&&& cout&&"a="&&hello1()&&" b="&&hello2()&&&&& return 0;}
int hello1(){&&& cout&&"hello1"&&&&& return 1;}int hello2() {&&& cout&&"hello2"&&&&& return 2;}最终输出是:hello2hello1a=1 b=2
一时让人有点难以琢磨,网上给出了其靠谱的解释:cout流的操作顺序是:先从右往左读入缓冲区,然后再从左往右输出。所以它从右边往左读的时候,碰到了函数当然去执行函数先了,然后把函数返回值读入缓冲区再然后。。。就是从左输出了。
根据这个解释,有实验的几个程序,能加深点理解
程序1: 代码如下:#include &iostream&int main() { &&& int b[2]={1,2};&&& int *a=b;&&& cout&&*a&&" "&&*(a++)&&&&& return 0; }输为出:2 1。解释:先读入*(a++),对于a++,是先读入缓冲区,其自增,所以,此时缓冲区中的a是1,。再读入*a,此时a已自增,所以读入缓冲区的是2.
程序2: 代码如下:#include &iostream&int main() { &&& int i=5;&&& cout&&i&&" "&&(i++)&&" "&&(++i)&&&&& return 0; }输出为:7 6 6解释:从右往左,先是(++i),即先自增,再读入缓冲区,为6。再是(i++),即先读入缓冲区,为6,再自增。最后是i,读入缓冲区为7.
您可能感兴趣的文章:
上一篇:下一篇:
最 近 更 新
热 点 排 行
12345678910C++中switch case选择语句如何应用?
C++中switch case选择语句如何应用?
09-01-22 & 发布
case 语句中的常量长度过大导致的 你可以不用那么麻烦的啊,用字符或字符串代替中文就是了嘛,效果一样的。另外,收费问题你的程序有错哈,不足3KM也是按3KM收费的,也就是说还得判断车程,下面是我改的程序。 #include&iostream.h& void main() {
cout&&&请输入车型:&&& cin&& cout&&&请输入路程:&&& cin&& switch(chexing) { case'x': cout&&&你乘坐的是夏利,路费为: &&&((lucheng&=3)?7:(7+(lucheng-3)*2.1))&&&元。&&&
case'f': cout&&&你乘坐的是富康,路费为: &&&((lucheng&=3)?8:(8+(lucheng-3)*2.4))&&&元。&&&
case's': cout&&&你乘坐的是桑塔纳,路费为: &&&((lucheng&=3)?9:(9+(lucheng-3)*2.7))&&&元。&&&
default: cout&&&输入错误&&& } } 那你在输入的时候提示就是了撒,为什么一定要输入中文呢?在输入的时候就提示如何呢? 比如说把 cout&&&请输入车型:&&& 换成 cout&&&请输入车型(x表示夏利,f表示富康,s表示桑塔纳):&&& 一般来说,这种交互性不强的程序都最好不要用中文输入 楼下的,为什么我的程序错误太多呢?我运行起很正常的呀
请登录后再发表评论!
我改写了一下(改简单)  public static void main(String[]args)throws IOException
 { int numberOfOthers=0,numberOfSpaces=0,numberOfDigits=0;    System.out.println(&Please Enter Some Characters:&); while((c=(char)System.in.read())!='\r') { //从键盘输入的//字符组提取一个字符给c到‘\r’结束(回车)switch(c){ //判断c是什么字符case'0': case'1': case'2': case'3': case'4': case'5': case'6': case'7': case'8': case'9': numberOfDigits++;//字符‘0’-‘9’的个数 case' ': numberOfSpaces++; ++;//字符‘ ’的个数 default: numberOfOthers++; //其他字符的个数 }}System.out.println(&&); //显示这些统计的数目System.out.println(&The Number of digits=&+numberOfDigits+&&); System.out.println(&The Number of spaces=&+numberOfSpaces+&&); System.out.println(&The Number of others=&+numberOfOthers+&&);
请登录后再发表评论!
case 语句中的常量长度过大导致的 你可以不用那么麻烦的啊,用字符或字符串代替中文就是了嘛,效果一样的。另外,收费问题你的程序有错哈,不足3KM也是按3KM收费的,也就是说还得判断车程,下面是我改的程序。 #include&iostream.h& void main() {
cout&&&请输入车型:&&& cin&& cout&&&请输入路程:&&& cin&& switch(chexing) { case'x': cout&&&你乘坐的是夏利,路费为: &&&((lucheng&=3)?7:(7+(lucheng-3)*2.1))&&&元。&&&
case'f': cout&&&你乘坐的是富康,路费为: &&&((lucheng&=3)?8:(8+(lucheng-3)*2.4))&&&元。&&&
case's': cout&&&你乘坐的是桑塔纳,路费为: &&&((lucheng&=3)?9:(9+(lucheng-3)*2.7))&&&元。&&&
default: cout&&&输入错误&&& } } 那你在输入的时候提示就是了撒,为什么一定要输入中文呢?在输入的时候就提示如何呢? 比如说把 cout&&&请输入车型:&&& 换成 cout&&&请输入车型(x表示夏利,f表示富康,s表示桑塔纳):&&& 一般来说,这种交互性不强的程序都最好不要用中文输入 楼下的,为什么我的程序错误太多呢?我运行起很正常的呀
请登录后再发表评论!
case 语句中的常量长度过大导致的 你可以不用那么麻烦的啊,用字符或字符串代替中文就是了嘛,效果一样的。另外,收费问题你的程序有错哈,不足3KM也是按3KM收费的,也就是说还得判断车程,下面是我改的程序。 #include&iostream.h& void main() {
cout&&&请输入车型:&&& cin&& cout&&&请输入路程:&&& cin&& switch(chexing) { case'x': cout&&&你乘坐的是夏利,路费为: &&&((lucheng&=3)?7:(7+(lucheng-3)*2.1))&&&元。&&&
case'f': cout&&&你乘坐的是富康,路费为: &&&((lucheng&=3)?8:(8+(lucheng-3)*2.4))&&&元。&&&
case's': cout&&&你乘坐的是桑塔纳,路费为: &&&((lucheng&=3)?9:(9+(lucheng-3)*2.7))&&&元。&&&
default: cout&&&输入错误&&&endl
请登录后再发表评论!

我要回帖

更多关于 c语言中条件语句 的文章

 

随机推荐