[C++]简单的输入输出

本文介绍了C++中的基本输入输出操作,包括使用cin进行输入,cin.get()处理空格和回车,以及cout进行输出。还讨论了如何处理字符型变量,输入不同进制的数值,以及输出数据的格式控制。通过对iostream库的使用,可以实现从键盘接收信息和向屏幕显示结果。
摘要由CSDN通过智能技术生成

简单的输入输出

输入语句:cin

程序在执行期间,接收外部信息的操作称为程序的输入;而把程序向外部发送信息的操作称为程序的输出。在C++中没有专门的输入输出语句,所有输入输出是通过输入输出流来实现的。

要使用C++提供的输入输出时,必须在程序的开头增加一行:

#include  <iostream.h>

即包含输入输出流的头文件“iostream.h”。有关包含文件的作用,在编译预处理部分(第五章)作详细介绍。

输入十进制整数和实数

cin >> <变量名1>《 >> <变量名2> ...... 》

int   a,b;

cin>>a>>b;//程序运行至此停下,等待从键盘输入变量值

 

浮点型数据同整型数据一样。

float   c,d;

cin>>c>>d;

char   ch1,ch2;

cin>>ch1>>ch2;

若输入:ab<CR> 则ch1为a, ch2为b。

若输入:a  b<CR> 则ch1为a, ch2为b。

字符型变量过滤空白字符。cin格式过滤空白字符

float  a;                             输入:34   5.678    1a  b<CR>

int  i1,i2;                     i1:34          a:5.578        i2:1

char  ch1,ch2;

cin>>i1>>a>>i2>>ch1>>ch2;          ch1:a         ch2:b

在缺省的情况下,cin自动跳过输入的空格,换言之,cin不能将输入的空格赋给字符型变量,同样地,回车键也是作为输入字符之间的分隔符,也不能将输入的回车键字符赋给字符型变量。

若要把从键盘上输入的每一个字符,包括空格和回车键都作为一个输入字符赋给字符型变量时,必须使用函数cin.get()。其格式为:

cin.get(<字符型变量>);

cin.get()从输入行中取出一个字符,并将它赋给字符型变量。这个语句一次只能从输入行中提取一个字符。

char  c1;

cin.get(c1);

char  ch1,ch2,ch3;

cin.get(ch1);

cin.get(ch2);

cin.get(ch3);

输入:A  B<CR>

则:ch1:A       ch2:空格     ch3:B

并且在输入缓冲区中保留回车键。

空格的ASCII码为32

 

 

输入十六进制或八进制数据

在缺省的情况下,系统约定输入的整型数是十进制数据。当要求按八进制或十六进制输入数据时,在cin中必须指明相应的数据类型:hex为十六进制;oct为八进制;dec为十进制。

int  i,j,k,l;

cin>>hex>>i;//指明输入为十六进制数

cin>>oct>>j;//指明输入为八进制数

cin>>k;//输入仍为八进制数

cin>>dec>>l;//指明输入为十进制数

当执行到语句cin时,若输入的数据为:

11  11  12  12<CR>

结果:i:17    j:9    k:10    l:12

 

使用非十进制数输入时,要注意以下几点:

1、八进制或十六进制数的输入,只能适用于整型变量,不适用于字符型变量,实型变量。

2、当在cin中指明使用的数制输入后,则所指明的数制一直有效,直到在接着的cin中指明输入时所使用的另一数制为止。如上例中,输入k的值时,仍为八进制。

3、输入数据的格式、个数和类型必须与cin中所列举的变量类型一一对应。一旦输入出错,不仅使当前的输入数据不正确,而且使得后面的提取数据也不正确。

 

输出数据 cout

与输入cin对应的输出是cout输出流。

当要输出一个表达式的值时,可使用cout来实现,其一般格式为:

cout <<  <表达式>  《<<  <表达式>......》;

其中运算符“<<”称为插入运算符,它将紧跟其后的表达式的值,输出到显示器当前光标的位置。

int a=6;

float  f1=12.4;

char  s1[ ]=“abcd”;

cout<<a<<‘\t’<<f1<<‘\t’<<s1<<endl;

 

‘\t’为转义字符Tab

endl为回车或‘\n’

 

cout将双引号中的字符串常量按其原样输出

char  ch1=‘a’,ch2=‘b’;

cout<<“c1=“<<ch1<<‘\t’<<“c2=“<<ch2<<endl;

c1=ac2=b<CR>

int  i1=4,i2=5;

float  a=3.5;

cout<<“a*i1=“<<a*i1<<endl<<“a*i2=“<<a*i2<<endl;

a*i1=14

a*i2=17.5

 

指定输出项占用的宽度:

在输出的数据项之间进行隔开的另一种办法是指定输出项的宽度。如上面的两个输出语句可改写为:

cout <<setw(6)<< i<<setw(10)<<j<<endl;

_ _ _ _ _ 4_ _ _ _ _ _ _ _ _12

cout << setw(5)<<m<<setw(10)<<j*k<<endl;

_ _ _ _ 7_ _ _ _ _ _ _ _ 24

其中setw(6)指明其后的输出项占用的字符宽度为6,即括号中的值指出紧跟其后的输出项占用的字符位置个数,并向右对齐。setw是“set  width”的缩写。

使用setw()应注意以下三点:

1、在程序的开始位置必须包含头文件iomanip.h,即在程序的开头增加:

#include <iomanip.h>

2、括号中必须给出一个表达式(值为正整数),它指明紧跟其后输出项的宽度。

3、该设置仅对其后的一个输出项有效。一旦按指定的宽度输出其后的输出项后,又回到原来的缺省输出方式。

输出八、十六进制数和科学表示法的实数

对于整型数据可指定以十六进制或八进制输出,而对于实型数据可指定以科学表示法形式输出。例如,设有如下一个程序:

#include <iostream.h>

void main(void)

{    float x=3.14,y=100;

     cout.setf(ios::scientific,ios::floatfield);

     //表明浮点数用科学表示法输出

     cout << x<<’\t’;

     cout <<y<<endl;   

}

执行该程序后的输出为:

3.140000e+000       1.000000e+002

与cin中类同,当在cout中指明以一种进制输出整数时,对其后的输出均有效,直到指明又以另一种进制输出整型数据为止。对实数的输出,也是这样,一旦指明按科学表示法输出实数,则接着的输出均按科学表示法输出,直到指明以定点数输出为止。明确指定按定点数格式输出(缺省的输出方式)的语句为:

cout.setf(ios::fixed,ios::floatfield);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值