C语言学习笔记___数据的输入与输出(二)

C语言学习笔记___数据的输入与输出(二)

一.使用scanf函数输入数据

  1. scanf函数的一般形式
    scanf(格式控制,地址表列)

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

2.scanf 函数中的格式声明

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

格式字符说明
d,i输入有符号的十进制整数
u输入无符号的十进制整数
o输入有符号的八进制整数
x,X输入无符号的十六进制整数(大小写作用相同)
c输入单个字符
s输入字符串,将字符串送到一个字符数组中,在输入时以非空白字符开始,以第一个空白字符结束,
f输入实数,可以用小数形式或指数形式输入
e,E,g,G与f作用相同,e与f,g可以互相替换(大小写作用相同)
l输入长整型数据(可用%ld,%lo,%lx,%lu)以及double型数据(用%lf或%le)
h输入短整型数据(可用%hd,%ho,%hx)
域宽指定输入数据所占宽度(列数),域宽应为正整数
*本输入项在读入后不赋给相应的变量

这两个表是为了备查用的,不必四级。开始时会用比较简单的形式输入数据即可。
3.使用scnaf函数时应注意的问题
(1).scanf函数中的格式控制后面应当是变量地址,而不是变量名。例如,若a和b为整形变量,如果写成

scanf("%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
如果输入
1 3 2  ,这样就错了

需要注意的是,在"a=1"的后面输入一个逗号,它与scanf函数中的“格式控制”中的逗号对应,如果输入时不用逗号而用空格或其他字符是不对的。

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

scanf("%c%c%c"&c1,&c2,&c3);
在执行此函数时应该连续输入三个字符,中间不要有空格,如: abc
若在两个字符中间穿插空格就不对了 ,如a b c

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

scanf("%d%c%f",&a,&b,&c);
若输入
1234a123o.261234对应a,a对应b,123对应c

二.字符输入输出函数

除了可以用printf函数和scanf函数输出和输入字符之外,C函数库还提供了一些专门用于输入和输出字符的函数。它们是很容易理解和使用的。

2.1用putchar函数输出一个字符
putchar函数的一般形式为:
putchar©
putchar是put character(给字符)的缩写,很容易记忆。C语言的函数名大多是可以见名知义的,不必死记。putchar(c)的作用是输出字符变量C的值,显然输出的是一个字符。

#include <stdio.h>
#include <stdlib.h>
int main()
{
	char a='B',b='O',c='Y';
    putchar(a);
    putchar(b);
    putchar(c);
    putchar('\n');
	system("pause");
	return 0;
}

运行结果:
在这里插入图片描述

从此例子可以看出,用putchar函数可以输出能在显示屏屏幕上显示的字符,也可以输出屏幕控制字符,如putchar(’\n’)的作用是输出一个换行符,使输出的当前位置移到下一行的开头。

如果把上面的程序改成以下内容:

#include <stdio.h>
#include <stdlib.h>
int main()
{
	int a=66,b=79,c=89;
    putchar(a);
    putchar(b);
    putchar(c);
    putchar('\n');
	system("pause");
	return 0;
}

运行结果为:
在这里插入图片描述

从前面的介绍已知,字符类型也属于整形类型,因此将一个字符赋给字符变量和将字符的ASCII代码赋给字符变量作用是完全相同的(需注意的是整形数据的范围为0~127)。
putchar函数是输出字符的函数,它输出的是字符而不能输出整数,66是字符B的ASCII代码。

putchar©中的c可以是字符常量、整形常量、字符变量或整形变量(其值在字符的ASCII代码范围内)。

2.2用getchar函数输入一个字符
getchar函数的一般形式为
getchar()
例:从键盘输入BOY三个字符,然后把它们输出到屏幕。

#include <stdio.h>
#include <stdlib.h>
int main()
{
	char a,b,c;
    a=getchar();
    b=getchar();
    c=getchar();
    putchar(a);
    putchar(b);
    putchar(c);
    putchar('\n');
	system("pause");
	return 0;
}

运行结果:
在这里插入图片描述

注意,在连续输入BOY并按Enter键后,字符才送到计算机中,然后输出BOY三个字符。
在用键盘输入信息时,并不是在键盘上敲一个字符,该字符就立即送到计算机中去。这些字符先暂存在键盘的缓冲器中,只有按了Enter键才把这些字符一起输入到计算机中,然后按先后顺序分别赋给相应的变量。

如果在运行时,没输入一个字符后马上按Enter键,会得到的结果为:
在这里插入图片描述
输入字符B后马上按Enter,再输入字符O,按Enter,立即会分两行输出B和O;

执行getchar函数不仅仅可从输入设备获得一个可显示的字符,而且可以获得在屏幕上无法显示的字符,如控制符,例:

#include <stdio.h>
#include <stdlib.h>
int main()
{
	putchar(getchar());
    putchar(getchar());
    putchar(getchar());
    putchar('\n');
	system("pause");
	return 0;
}

结果为:
在这里插入图片描述
需要注意的是,不要再按B后马上按回车键,这样就会把回车也作为一个字符输入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值