-
1 文字讲解
-
2 视频讲解
-
3 过关测试
数据的输入一般是以键盘为处理对象的,从键盘接收字符和数值。
字符输入函数 getchar( )和输出函数 putchar( )是以一个字符为单位来完成输入/输出过程的。在程序中,使用这两个函数时,要求在程序开头包含头文件 stdio.h:
#include <stdio.h>
2.5.1 字符输getchar入函数()
1、函数 getchar( )的常用格式
常用格式:字符型变量 = getchar( );
说明:getchar函数没有参数,使用简单,getchar函数执行完后有返回值,是键盘上一个按键的ASCII值,可以存放到字符型变量中。
2、函数 getchar( )的功能
函数 getchar( )的功能:接收从键盘上输入的字符。
3、函数 getchar( )应用示例一
类似代码如下:
char ch;
ch = getchar( );
在程序中使用这个函数输入字符时,可以用一个变量来接收读取的字符。
执行上面的语句时,程序等待用户输入,当用户按下某个键时,变量c就得到了该键的代码值。
在进行数据输入时有一个特殊的字符,就是从键盘输入(表示将Cu键与Z键同时按下),Z称为文件尾标,表示输入过程结束,这个特殊字符的值为-1。
4、函数 getchar( )应用示例二
类似代码如下:getchar( );
说明:不存储从键盘输入的字符,暂停程序执行,可应用于程序调试中。
例2-10 使用字符输入函数 getchar( )完成如下功能:
从键盘上输入任意一个字符,输出这个字符与它相对应的ASCII码。
程序分析:从键盘上输入:A,输出:ch=A,ch=65
源代码如下:
#include <stdio.h>
main( )
{
char ch;
ch=getchar( );
printf("ch=%c, ch=%d \n", ch, ch);
}
执行此程序,当执行到语句:
ch=getchar( );
时,计算机就会等待用户按键(等待输入)。此时,若用户按了A键,就会在屏幕上显示如图2-8所示内容。

图2-8中的65是大写字母A的ASC码值。
2.5.2 格式化输入函数scanf( )
1、函数 scanf( ) 的常用格式
格式:scanf("格式串",地址表);
说明:① 地址表由需要接受存储数据变量的地址组成,中间用逗号隔开,获取一般各种类型变量的地址采用&(取地址)运算符,如&a,&b。
② 与printf( )函数一样,“格式串”中既可以含格式符,也可以含非格式符。 scanf( )中格式符的意义同 printf( ),如表2-5所示。

2、函数 scanf( ) 的功能
功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束。
输入时,只要遇到非格式符,就要求原样输入,只要遇到格式符,就要按指定格式输入数据,输入的数据存入对应地址的存储空间中。
当 scanf( )函数有多个输入项时,键盘输入的各项信息之间可以用空格、Tab键或回车键作为分隔符。
❖输入分隔符的指定
⚫ 一般以空格、TAB或回车键作为分隔符
⚫ 输入数据时,遇非法输入则认为数据结束
⚫ 其它字符做分隔符:格式串中两个格式符间有其它字符,则输入时对应位置也要有相同的字符。
例如: scanf(“%d:%d:%d”,&h,&m,&s);
输入 12:30:45
则12 --> h, 30 --> m, 45 --> s
例如:
#include <stdio.h>
main( )
{
int h,m,s;
scanf("%d:%d:%d",&h,&m,&s);
printf("时间为:%d:%d:%d\n", h, m, s);
}
输入1234a123o.26 //o 非法字符
则 1234 --> a, ‘a’--> b, 123 --> c
3、函数 scanf( ) 的常用示例一
部分代码如下:
int x, y;
scanf("x=%d,y=%d", &x, &y );
printf("x=%d, y=%d", x, y);
说明:这种用法在格式串中有格式符与非格式符。
scanf函数运行示意图如下:

这里,若执行该语句后x=3,y=4, 则可按下面的格式输入:
x=3,y=4
按回车键后结束输入。此时,3和4分别写入x和y所在的存储单元中。
4、函数 scanf( ) 的常用示例二
部分代码如下:
int x, y;
scanf("%d%d", &x, &y );
printf("x=%d, y=%d", x, y);
说明:这种用法在格式串中只有格式符。
数据输入方法1:采用空格作为分隔符
123 500
数据输入方法2:采用回车符作为分隔符
123
500
注意:此时逗号、分号等标点符号不能作为分隔符,因为它们未出现在格式串中,只能用空格、Tab键或回车键作为分隔符。
例2-11 从键盘上输入直径的值,然后计算圆的面积和周长。
#include <stdio.h>
#define PI 3.1415926
main( )
{
float d, r;
double len, area;
printf("请输入直径的值:");
scanf("%f", &d);
r=d/2;
area=PI*r*r;
len=2*PI*r;
printf("半径R=%f,面积S=%f,周长L=%f\n", r, area, len);
}
该程序的运行结果如图2-9所示。

图2-9 例2-11运行结果
语义错误通过程序调试来发现
断点:breakpoint
release:正式版
debug:调试
如何调试:
1、请将源程序文件保存到某一目录中
2、编译器选择debug调试版
3、打开调试器面板
4、调试
提示性语句:表示友好,能让用户看明白
运行scanf语句时,等待你从键盘上输入数据
蓝色表示下一条将执行的语句
红色表示断点,程序运行时遇到红色会暂停
添加查看,可以了解程序运行过程中变量的值

