数据的输入和输出
1、字符输入函数
字符输入函数(getchar函数)是从标准输入设备上输入一个字符到计算机内部。
函数调用格式:getchar();
说明:
- 须包含头文件stdio.h
- getchar是一个无参函数
- 一个getchar函数只能接收一个字符,在输入时,只有在用户键入“回车键”(Enter)后,输入才执行。
2、字符输出函数
字符输出函数(putchar)是在标准输出设备上输出一个字符。
函数调用格式:putchar(ch);
Ch是函数参数,可以是字符型或整型的常量变量或表达式
#include <stdio.h>
void main()
{
char c1,c2;
c1='a';c2='B';
putchar(c1);
putchar(c2);
putchar(c1-32); //先进行ASCII码值的运算再输出
putchar(c2+32);
}
程序运行结果:aBAb5
#include <stdio.h>
void main()
{
putchar(getchar());
putchar(getchar());
}
运行程序,输入:abEnter
输出结果: ab
假如采用先输入字符a,按回车,在输入字符b,按回车。会发现第二个字符b无法显示在屏幕上,换句话说,第二个字符b没有输入到机器内部。原因在于“回车”也是字符。第一次输入a后的回车,机器把它当成第二个字符了。
3、格式输入函数
格式输入函数(scanf函数)的功能是从键盘上输入数据,该数据按指定的输入格式被赋给相应的输入项。包含在头文件stdio.h中
格式:scanf(“格式控制”,输入项表);
其中:格式控制符规定数据的输入格式,必须用双引号括起来,其内容仅仅是格式说明。输入表项则由一个或多个变量地址组成(变量地址就是在变量名前加地址符“&”),当变量地址有多个时,各变量地址之间用逗号“,”隔开
格式控制5
格式说明符由%和类型说明符组成,用于指定输入数据的类型和宽度。在%和类型说明符之间也可以有附加的格式说明符
说明:
- scanf函数中的格式字符前可以用一个整数指定输入数据所占的宽度。但不可以对实型数据指定小数位指定小数位的宽度。
- 格式说明的个数应该与输入项的个数相同
- 在格式控制中不能出现转义字符。如:scanf("%d\n",&a)
从键盘输入数据
当执行scanf函数输入数据时,用户从键盘输入时,最后一定要按下Enter键,scanf函数才能接收从键盘输入的数据。
1)输入数值数据
当从键盘输入数值数据时,输入的数值数据之间需要间隔开,具体采用何种形式间隔,应与格式控制的形式相一致。
假设有是哪个整型变量a,b,c,有输入数据:
(1)scanf("%d%d%d",&a,&b,&c);
键盘输入时可采用两种方式(假设给a赋予1,b赋予2、c赋予3)
1 2 3Enter(数之间可以用空格或制表符分隔)
或1Enter
2Enter
3Enter
(2)scanf("%d,%d,%d",&a,&b,&c);
键盘输入为1,2,3Enter
(3)scanf("a=%d,b=%d,c=%d",&a,&b,&c);
键盘输入则为:
a=1,b=2,c=3Enter
一句话就是scanf()中的“”下有什么就键入什么
2)指定输入数据所占宽度
在格式字符前加入一个整数,用来指定输入数据所占的宽度
3)忽略输入数据的方法
可以在格式字符和%之间加一个*号,它的作用是跳过对应的输入数据。
int a1,a2,a3;
scanf("%d%*d%d%d",&a1,&a2,&a3);
输入数据:1 2 3 4Enter
将把1赋给a1,跳过2,把2赋给a2,把4赋给a3.
4、格式输出函数
格式输出函数(printf函数)的作用是按格式控制所指定的格式,在标准输出设备上将输出项列表中的各项输出。
printf(“格式控制”,输出项表)
格式控制
要求每个输出项都必须用一个格式说明符指定其输出格式
在%和格式字符之间可以增加附加格式说明符,用于指定输出数据宽度和输出形式
#include <stdio.h>
void main()
{
cahr a='a'
int b=97;
printf("%c,%d\n",a,a);
printf("%c,%d\n",b,b);
printf("%s\n","CHINA");
}
输出结果:
a,97
a,97
CHINA
注意:%s输出一个字符串常量或一个字符数组中存放的字符串,按照%s输出字符串时,是从第一个字符开始输出,遇到字符串结束标志‘\0’为止。
若定义int a=2,b=3;float x=3.5,y=2.5;则下面表达式的值为3.5
(float)(a+b)/2+(int)x%(int)y
#include <stdio.h>
void main()
{
int x=10,y=10;
printf("%d%d\n",x--,--y); //109
}
#include <stdio.h>
void main()
{
int x=3,y=3,z=1;
printf("%d%d\n",(++x,y++),z+2); //33
}
写出下面程序输入“1 2 3”后的运行结果
#include <stdio.h>
void main()
{
int a,c;char b;
scanf("%d%d%d",&a,&b,&c);
printf("a=%d,b=%c,c=%d\n",a,b,c);//a=1,b= ,c=2(b赋值为空格)
}