项目三 任务二 C语言的输入与输出函数介绍及使用

任务二  C语言的输入与输出函数介绍及使用

任务描述

在C语言开发中,经常会对数据进行输入和输出的操作,为此C语言提供了printf()和scanf()函数对数据进行格式化输出和输入,getchar()与putchar()函数专门针对字符的输入和输出,以及gets()和puts()函数针对字符串的操作,接下来的任务就是对前两组函数进行学习,针对于字符串的草垛,我们会在后面任务会中。

任务目标

掌握printf()与scanf()格式化输入与输出的使用。

掌握putcahr()与getcahr()函数作用与使用。

相关知识

3-2-1  printf()与scanf()函数的使用

在前面的讲解中,我们会经常使用printf()函数进行一些输出的操作,为此C语言给我们提供printf()函数进行输出。当然在程序中我们也会有一些输入的操作,C语言给我们提供了scanf()函数来帮我们实现输入的操作。

1.printf()函数的使用

关于怎么使用printf()函数对于我们来说已经不再陌生,它可以通过格式化控制字符串输出相应的数据类型。

printf()函数的调用格式为:printf("格式化字符串",输出表列)。

格式化字符串包含三种对象,分别为: 

(1)字符串常量,字符串常量会原样输出,在显示中起提示作用。 

(2)格式控制字符串,是以%开头的字符串,在%后面跟有各种格式控制符,以说明输出数据的类型、宽度、精度等。如表3-4所示。

表3-4常见格式控制符

 

  常用格式控制符

说明

%d或者%i

输出short、int、long变量,以十进制输出,%i 是老用法

%c

输出char变量,也可以用%d 输出 char,输出的就是字符的 ASCII 码

%f

输出float变量,输出时保留小数点后面6位

%lf

输出double变量,输出时保留小数点后面6位

%lld

输出long long变量(64位整数)

%nd (如%4d,%12d)

以n字符宽度输出整数,宽度不足时用空格填充

%Ond (如%04d,%012d)

以n字符宽度输出整数,宽度不足时用0填充

%.nf (如%.4f,%3f)

输出浮点数,精确到小数点后n位,%.2f 就是保

留 2 位小数

%s

输出字符串

 

(3)转义字符,比如/n目的是表示换行。

输出表列中给出了各个输出项,要求格式控制字符串和各输出项在数量和类型上应该一一对应,为了直观的表示出printf()的使用,给出图3-12所示。

项目三 任务二 C语言的输入与输出函数介绍及使用_第1张图片

图3- 12 printf()函数的使用

注意:

printf 中数据类型一定不能用错,float 类型必须用%f,整数必须用%d,如果用错了会发现结果很怪异,数据结果完全对不上,结果如图3-15。比如下面的错误代码:

实例3- 7错用格式符。

printf("%f",3);

printf("%d",3.14f);

运行结果如图3-13所示,会发现数据完全对不上。

图3- 13 错误使用格式符

 

在 printf 中也可以同时使用多个占位符,只要和参数的类型、个数能够对的上就行:

例如以下输出

实例3- 8多个占位符同时的输出

printf("name=%s,age=%d,height=%f","王丹",18,3.14f);

运行结果如图3-14所示,显示结果完全没有问题。

图3- 14 多个占位符同时的输出

 

2.scanf()函数的使用

scanf()函数是负责从键盘接收用户的输入,当我们提到输入时,这意味着要向程序写入一些数据。为什么要使用scanf()函数录入信息呢?下面给大家举个例子: 

实例3- 9 为什么要用scanf()函数的举例

   int i=23;

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

我们前面都是像这样写的,直接给变量 i 赋一个值。这个数值只能在程序中修改。很多时候我们希望这个值不是在程序中指定的,而是在程序运行的过程中由用户从键盘输入的。i的值是经过键盘录入的数据,这样的程序就灵活多了。就像我们每一次登录QQ账号和密码一样,每个人掌控着录入的账号和密码,这样才有不同的账号和密码的意义。

使用scanf()函数的调用格式为:scanf("输入控制符",变量的地址)。

“输入控制符”和“输出控制符”是一模一样的。比如一个整型数据,通过 printf 输出时用%d输出,通过 scanf 输入时同样是用%d。

接下来我们通过一个案例来讲解其用法。

实例3- 10提示用户输入两个整数,计算并且输出两个整数的和

int main()

{

  int a;

  int b;

  printf("请输入a的值");

  scanf("%d",&a);//输入第一个数  &a 表示变量 a 的地址,&是取地址符

  printf("请输入b的值");

 scanf("%d",&b);//输入第二个数 &b 表示变量 b 的地址

  printf("a+b=%d",a+b);

  getchar();

  return 0;

}

运算结果如图3-15所示。

项目三 任务二 C语言的输入与输出函数介绍及使用_第2张图片

图3- 15 例题运行结果

 

上述案例我们从键盘上输入12,和13,然后%d格式之后,最后通过“取地址 a”和“取地址 b”找到变量 a 和b的地址,再将数字 12和13 分别放到a和b地址所以a=12、b=13。

 

注意:

(1)参数的个数一定要对应。如scanf("%c%d", &ch);很明显两个格式符,一个对应的变量地址。这种错误是初学者经常犯的,由于粗心大意,少写一个参数。更严重的是,这种错误在编译的时候不会报错。

(2)输入的数据类型一定要与所需要的数据类型一致,对于不匹配的类型,整个函数会直接退出,返回已经读取到的数据个数。

(3)使用scanf函数也可以一次接收输入多个数据

接下来我们通过一个案例来讲scanf函数一次接收输入多个数据用法,请看实例3-11

实例3- 11提示用户输入两个整数,计算并且输出两个整数的和(这个案例我们用scanf函数一次接收输入多个数据)

运算结果如图3-16所示。

#include 

int main()

{

  printf("请输入a与b的值");

  int a;

  int b;

  scanf("%d%d",&a,&b);//输入第一个然后空格输入第二个数

  printf("a+b=%d",a+b);

  getchar();

  return 0;

}

图3- 16 例题运行结果

运行的结构发现和变量单个输出的结构和结果一致。

3-2-2  getchar()与putchar() 函数的使用

getchar() 函数负责从键盘接收用户的输入一个可用的字符和printf("%c",&ch)作用一样。同一个时间内只会读取一个单一的字符。

putchar(int c) 函数负责把字符输出到屏幕上和printf("%c",ch)作用一样。 同一个时间内只会输出一个单一的字符。  

getchar()putchar() 函数的使用

接下来我们通过一个案例来讲getchar()putchar() 函数用法,请看实例3-7。

实例3- 12写入一个字符,然后在输出在控制台上。 

#include 

int main( )

{

char c;

printf( "请输入一个字符 :");

c = getchar( );

printf( "\n您输入的字符为: ");

putchar( c );

printf( "\n");

getchar();

return 0;

}

运行的结果如图3-17所示。

项目三 任务二 C语言的输入与输出函数介绍及使用_第3张图片

图3- 17 实例3-12运行结果

  上述案例通过getchar()写入一个字符,然后通过putchar(c)把写入的字符输出到控制台上。

 

 

你可能感兴趣的:(中职C语言)