目录

  • 1 第一章  C语言概述
    • 1.1 第一节  C语言的产生和发展
    • 1.2 第二节  C语言的特点
    • 1.3 第三节  两个简单的C程序
    • 1.4 第四节  C程序的上机步骤
    • 1.5 第五节  Dev-C++介绍
    • 1.6 第六节  VC2010学习版介绍
    • 1.7 第七节  宏定义和文件包含
    • 1.8 本章小结
    • 1.9 本章单元测试
  • 2 第二章  基本数据类型与简单程序设计
    • 2.1 第一节  C语言的基本数据类型
    • 2.2 第二节  常量
    • 2.3 第三节  变量
    • 2.4 第四节  赋值语句
    • 2.5 第五节  数据输出
    • 2.6 第六节 数据输入
    • 2.7 第七节  运算符
    • 2.8 第八节  常用的数学函数
    • 2.9 第九节  顺序结构程序设计
    • 2.10 本章小结
    • 2.11 本章单元测试
  • 3 第三章  分支结构程序设计
  • 4 第四章  循环结构程序设计
  • 5 附录
    • 5.1 附录A   编译常见错误提示
    • 5.2 附录B  常见C语言英语单词
    • 5.3 什么是编译器
    • 5.4 与编译器相关的几个知识点
第六节 数据输入
  • 1 文字讲解
  • 2 视频讲解

数据的输入一般是以键盘为处理对象的,从键盘接收字符和数值。

字符输入函数 getchar( )和输出函数 putchar( )是以一个字符为单位来完成输入/输出过程的。在程序中,使用这两个函数时,要求在程序开头包含头文件 stdio.h:

   #include <stdio.h>

2.5.1  字符输getchar入函数()

函数 getchar( )的功能是接收从键盘上输入的字符。在程序中使用这个函数输入字符时,可以用一个变量来接收读取的字符,例如

c =getchar( );

执行上面的语句时,程序等待用户输入,当用户按下某个键时,变量c就得到了该键的代码值。

在进行数据输入时有一个特殊的字符,就是从键盘输入(表示将Cu键与Z键同时按下),Z称为文件尾标,表示输入过程结束,这个特殊字符的值为-1。

例2-10  字符输入函数 getchar( )的功能

#include  <stdio.h>

main( )

{

   char ch;

   ch=getchar( );

   printf("ch =%c, ch=%d \n", ch);

}

执行此程序,当执行到语句:

      ch=getchar( );

时,计算机就会等待用户按键(等待输入)。此时,若用户按了A键,就会在屏幕上显示如图2-8所示内容。

图2-8中的65是大写字母A的ASC码值。

2.5.2  格式化输入函数scanf( )

getchar( )函数只能输入一个字符,要想输入其他类型的数据,就需要使用格式化输入函数scanf( ),该函数按指定的格式完成输入。scanf()函数的功能是按指定的格式从键盘接收输入信息。

格式化输入函数 scanf( )的一般使用格式如下:

     scanf("格式串",地址表);

与printf( )函数一样,“格式串”中既可以含格式符,也可以含非格式符。 scanf( )中格式符的意义同 printf( ),如表2-5所示。

 表2-5输入格式符

格式符功能说明
%c接收一个字符型数据
%d接收一个整型数据,直到遇到空格、<Tab>或回车符
%f 接收一个浮点型数据(float)
 %lf接收一个浮点型数据(double)

输入时,只要遇到非格式符,就要求原样输入,只要遇到格式符,就要按指定格式输入数据,输入的数据存入对应地址的存储空间中。例如

scanf("x=%d, y=%d", &x, &y );

这里,scanf( )函数中的“&x"和“&y”分别是变量x和y的地址,若执行该语句后x=123,y=500, 则可按下面的格式输入:

x=123,y=500

按回车键后结束输入。此时123和500分别写入x和y所在的存储单元中。

当 scanf( )函数有多个输入项时,键盘输入的各项信息之间可以用空格、Tab键或回车键作为分隔符。比如,执行

scanf("%d %d", &x. &y )

语句时,可以输入:

    123  500

注意:此时逗号、分号等标点符号不能作为分隔符,因为它们未出现在格式串中。

例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运行结果

程序中使用了符号常量PI。使用符号常量的意义在于当符号常量被多次引用时,既可简化程序的数据输入,又可以在修改同一个常量时只需修改一处即可。若在程序中多次出现某个常量,且该常量的位数较多(如3.1415926),则使用符号常量会方便得多。

用define定义符号常量,在C语言中实际上是进行宏定义。宏定义是用一个指定的标识符来代替一个字符串,它的一般形式为:

#define  标识符    字符串

这个“标识符”称为宏名,在预编译时,将宏名替换成字符串,这个过程称为“宏展开”。如将"area=PI*r*r;"展开为“area=3.1415926*r*r;”。