4.cin/cout与scanf/printf的使用

一、通过cin流输入数据

流读取运算符>>和cin结合在一起使用,可从键盘输入数据。
格式1:
  cin>>变量;
功能:从键盘读取一个数据并将其赋值给“变量”。
说明:在使用cin输入的时候必须考虑后面的变量类型。如果要求输入一个整数,在>>后面必须跟一个整形变量,如果要求一个字符,后面必须跟一个字符型变量。
注:可以连续使用>>,实现从键盘对多个变量输入数据。
格式2:
  cin>>变量1>>变量2>>……;
但需注意的是:这要求从键盘输入的数据的个数、类型与变量相一致。从键盘读取数据时,各数据之间要有分隔符,分隔符可以是一个或多个空格键、回车键等。

二、通过cout流输出数据

流插入运算符<<和cout结合在一起使用,可向显示器屏幕输出数据。
格式1:
  cout<<表达式;
功能:把表达式的值输出到屏幕上,该表达式可以是各种基本类型的常量、变量或者由它们组成的表达式。输出时,程序根据表达式的类型和数值大小,采用不同的默认格式输出,大多数情况下可满足要求。若要输出多个数据,可以连续使用流插入运算符。
格式2:
  cout<<表达式1<<表达式2……;
功能:将表达式的内容一项接一项的输出到屏幕上。
注:

1.输出字符串和输出变量的区别

每当我们输出字符串常量的时候,必须用双引号把字符串引起来,以便将它和变量名明显的区分开来。例:
  cout<<“Hello”; //打印字符串Hello到屏幕上。
  cout<<Hello; //把变量Hello存储的内容打印到屏幕上。

2.如何增强信息的可读性

为了增强输出信息的可读性,在输出多个数据时可以通过插入空格符、换行符或其他提示信息将数据进行组织,以获得更好的效果。

3.换行符的使用

必须注意,除非我们明确指定,cout并不会自动在其输出内容的末尾加换行符。

三、格式化输入函数scanf

scanf函数的功能是格式化输入任意数据列表,其一般调用格式为:
  scanf(格式控制符,地址列表)
说明:
(1) 地址列表中给出各变量的地址,可以是变量的地址,也可以是字符串的首地址。
(2) 格式控制符由%和格式符组成,作用是将要输入的字符按指定的格式输入,如%d,%c等。
                 scanf函数的格式符

格式符说明
d,i用于输入十进制整数
u以无符号十进制形式输入十进制整数
o用于输入八进制整数
x用于输入八进制整数
c用于输入单个字符
s-用于输入字符串(非空格开始,空格结束,字符串变量以’/0‘结尾)
f用于输入实数(小数或指数均可)
e与f相同(可与f互换)

scanf函数的附加格式说明符

附加格式说明
l(字母)用于长整型数(%ld、%lo、%lx)或double型实数(%lf、%le)
h用于短整型数(%hd、%ho、%hx)
域宽指定输入所占列宽
*表示对应输入量不赋给一个变量

例1:*格式符的使用

#include<cstdio>
int main()
{
     int a,b;
     scanf("%d%*d%d",&a,&b);
     printf("a=%d,b=%d\n",a,b);
     }
输入: 1 2 3
输出:a=1,b=3

例2:域宽格式符的使用

#include<cstdio>
int main()
{
    int a,b;
    scanf("%4d%4d",&a,&b);
    printf("a=%d,b=%d\n",a,b);
    }
输入:1234567
输出:a=1234,b=567

例3:非格式符的使用

#include<cstdio>
int main()
{
    int a,b,c;
    scanf("%d,%d,%d",&a,&b,&c);
    printf("a=%d,b=%d,c=%d\n",a,b,c);
    }//例中scanf用非格式字符‘,’作为间隔符
故输入应为:5,6,7(本来输入:5 6 7)
输出:a=5,b=6,c=7

补充:
例如:while(sncaf("%d",&x)==1)中,若数x读取成功,则scanf函数的返回值为1,即“1= =1”成立,函数进行循环。
若为scanf("%d%d",&a,&b);若①a,b都读取成功,则返回值为2;②a或b读取成功,返回值为1;③a,b都未读取成功,返回值为0

四、格式化输出函数printf

printf函数的功能是格式输出任意数据列表,其一般调用格式为:
  printf(格式控制符,输出列表)
说明:
(1)格式控制由输出格式说明和普通字符组成,必须用双引号括起来。
①格式说明由%和格式字符组成,作用是将要输出的字符转换为指定的格式,如%d,%c等。
②普通字符是在输出时原样输出的字符,一般在显示时起提示作用。
(2)输出列表是需要输出的一组数据(可以为表达式和变量),各参数之间用“,”分开。要求格式说明和各输出项在数量和类型上要一一对应,否组会出现意想不到的错误。
             printf函数的格式符

d(或i)以带符号的十进制形式输出整数,整数的(+) 号省略不输出
u以无符号十进制形式输出整数
x(或X)以十六进制无符号形式输出整数(不出书前导符0x)
o以八进制无符号形式输出整(不输出前导符数字0)
c输出一个字符
s输出字符串
f以小数形式输出单、双精度,隐含输出6位小数
e(或E)以指数形式输出单、双精度,隐含输出6位小数
g(或G)自动选用%f、%e或%E格式中输出宽度较小的一种使用

d格式符

参数说明
%d输出数字长为变量值的实际长度
%md输出m位(不足补空格,大于m位时按实际长度输出)
%-mdm含义同上,左对齐输出
%ldl(小写字母)表示输出“长整型”数据
%mld指定长整型输出宽度m位,左边补空格;否则,按实际位数输出
%0md,%0mld0(数字0)表示位数不足m时补0

例如:
int i=1;
long j=123;
printf("%d,%2d,%03d,%1d,%-4ld,%05ld",i,i,i,j,j,j);
输出:1,  1,001,123,123  ,00123
f格式符

参数说明
%f按实数格式输出,整数部分按实际位数输出,6位小数
%m.nf总位数m(含小数点),其中有n位小数
%-mf.nf同上,左对齐

s格式符

参数说明
%s按实际宽度输出一个字符串
%msm指定宽度(不足时左补空格,大于时按实际宽度输出)
%-ms左对齐,不足时右补空格
%m.ns输出占m个字符位置,其中字符数最多n个,左补空格
%-m.ns同上,右补空格

关于几种输入输出格式的几点说明:
1.cin和cout在Dev C++中只能调用iostream库,而其他输入输出格式要调用stdio.h或cstdio库。
2.cin和cout属于C++的概念,调用涉及输入输出流,而scanf和printf属于C的概念,是C语言的标准输入/输出库中的函数,所以在时效上,scanf和printf优于cin、cout,对于大数据的输入输出,通常情况下应该用scanf、printf。
3.对于普通数据的输入输出,cin和cout比较方便,而在格式化方面,scanf和printf比较容易。cin效率比scanf低很多。
4.scanf和printf也有缺点,cin和cout能够自动识别变量的数据类型,因此,在进行输入输出时,不需要指定数据类型,printf和scanf函数在输入输出时需指定数据类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值