C语言——printf、scanf、其他输入输出函数

printf函数

1.printf 函数的一般格式:


printf 函数的一般格式为printf(格式控制,输出表列)
例如:

printf("%d,%c\n",i,c);

    (1)“格式控制"

是用双撇号括起来的一个字符串,称“转换控制字符串”,简称“格式字符串”。它包括两个信息:
    ① 格式声明。格式声明由“%”和格式字符组成,如%d、%f等。它的作用是将输出的数据转换为指定的格式然后输出。格式声明总是由“%”字符开始的。

         其 中:d代表十进制整数、c代表单个字符、s代表多个字符、f代表小数、x代表以十六进制格式输出、p代表打印内存地址,也是十六进制格式输出,输出地址使用取变量地址运算符号&。
    ② 普通字符。普通字符即需要在输出时原样输出的字符。例如上面 printf 函数中双擞号内的逗号、空格和换行符,也可以包括其他字符。


    (2)“输出表列”

是程序需要输出的一些数据,可以是常量、变量或表达式。

注:
(1)强制转换:把整数变成小数
int data = 10;
int chushu = 3;
float result;

result = (float)data/chushu;
(2)指定数据宽度和小数位数,用%m.nf
已经用了“%7.2”格式指定了输出的数据占7列,其中包括2位小数。对其后一位采取四舍五入方法处理,即向上或向下取近似值。如来把小数部分指定为0,则不仅不输出小数,而且小数点也不输出。所以不要轻易指定小数的位数为0。
(3)输出的数据向左对齐,用%-m.nf
在m,n的前面加一个负号,其作用与%m.nf形式作用基本相同,但当数据长度不超过m 时,数据向左靠,右端补空格。

scanf函数

1.scanf函数的一般形式


scanf(格式控制,地址表列)

“格式控制”的含义同 printf函数。“地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。


2.scanf函数中的格式声朋


与printf函数中的格式声明相似,以%开始,以一个格式字符结束,中间可以插入附加的字符。
可以把scanf函数改写成以下形式

scanf("a=%f,b=%f,c=%f",&a,&b,&c);


在格式字符串中除了有格式声明%f以外,还有一些普通字符(有“a=”,“b="和“,”)。  

注:

(1)地址符号&

scanf函数中的“格式控制"后面应当是变量地址,而不是变量名。例如,若a和b为整型变量,如果写成

scaní("%f%f%f",a,b,c);

是不对的。应将“a,b,c”改为“&a,&b,&c”。许多初学者常犯此错误。

(2)原样输入

如果在“格式控制字符串”中除了格式声明以外还有其他字符,则在输人数据时在对应的位置上应输人与这些字符相同的字符。如果有

scanf("a=%f,b=%f,c=%f",&a,&b,&c);

在输人数据时,应在对应的位置上输入同样的字符。即输入
a=1,b=3,c=2(注意输入的内容)

  所以在scanf中不要加入空格(空格的话使用换行输入是可以的)或逗号等符号,直接将所需输入的数据写出就行:

scanf("%d%d%f",&data,&data1,&data2);
(3)字符输入

在用“%c"格式声明输入字符时,空格字符和“转义字符"中的字符都作为有效字符输人,例如:
 

scanf("%c%c%c,&c1,&c2,&c3);

在执行此函数时应该连续输入3个字符,中间不要有空格。
若在两个字符中间插人空格就不对了。

空格和换行符也属于是字符,输入的时候不能使用空格或者换行。

(4)混合输入

在输人数值数据时,  如输入空格、回车、Tab键或遇非法字符(不属于数值的字符),认为该数据结束。例如:
 

scanf("%d%c%f,&a,&b,&c);

正确输入为:1234h7.6

第1个数据对应%d格式,在输入1234之后遇字符'h',因此系统认为数值1234后已没有数字了,第1个数据应到此结束,就把1234送给变量a。把其后的字符'h'送给字符变量b,由于%c只要求输入一个字符,系统判定该字符已输入结束,因此输入字符'h'之后不需要加空格。字符'h'后面的数值应送给变量c。如果由于疏忽把1230.26错打成123o.26,由于123后面出现字母o,就认为该数值数据到此结束,后面几个字符没有被读入。

所以当我们在做不同类型数据的输入的时候,应该分类型去做对应的scanf函数,有几种类型就有几个scanf函数。

(5)多个scanf函数

当一个程序中含有两个或多个scanf函数的时候,后面一个scanf函数会把前一个scanf函数输入后的换行符,当做自己的输入,导致后一个scanf函数无法正常获得输入,因此要在两个scanf函数之间,插入一个getchar(),吸收掉多余的一个换行符。

其他输入输出函数:

puts:跟printf的区别
(1).自动加入换行符
(2).printf支持多种花样输出,而puts就是输出字符串

getchar、putchar

输入输出练习:

1.输入大写字母输出小写字母

这里利用到ASCII码的知识,大写字母对应的ASCII码+32即为其对应的小写字母的ASCII码

因此代码示例为

#include<stdio.h>

int main()
{
	char a;
	char b;
	
	printf("请输入一个大写字母:");
	scanf("%c",&a);
	b = a+32;
	printf("其对应的小写字母为:%c",b);
	
	return 0;
}

  • 22
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hardStudy_h

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值