黑马程序员——C语言基础知识整理——printf函数与scanf函数

来源:互联网 发布:java项目使用tomcat 编辑:程序博客网 时间:2024/05/22 16:31

------- android培训、java培训、IOS培训 期待与您交流! ----------

1、printf函数

printf函数是标准的库函数,能够根据数据指定的输出格式精确地输出程序运行结果,包含于stdio.h头文件。

printf函数使用基本格式为;

printf("格式控制字符串",输出列表项);

其中格式控制字符串由格式字符与普通字符构成,格式字符用来指明数据输出类型、长度、精度等,普通字符则原样输出。

printf函数格式字符使用说明如下所示:

printf函数格式字符为%m.nf,表示输出m列,保留n位小数,输出单精度实型,域宽m可正可负。m>0时,左侧补位;m<0时,右侧补位。

说明:实际位数>m,按实际位数输出;实际位数<m,补空格。

使用如下所示:

测试代码为:

/*

  函数格式字符为%m.nf,表示输出m列,保留n位小数,输出单精度实型,域宽m可正可负。
 
  m>0时,左侧补位;m<0时,右侧补位。

  说明:实际位数>m,按实际位数输出;实际位数<m,补空格。

*/

#include "stdafx.h"
#include "stdio.h"


void main()
{
    double f=3.1415926;

    printf("f=%3lf\n",f);//域宽为3<实际列数9,原样输出

    printf("f=%9.7f\n",f);//单精度实型输出,保留7位小数
                        //float类型保留7位有效数字,故输出最后一位不准确
    printf("f=%9.7lf\n",f);//double有效数字为15位

    float f1=3.14f;
    printf("f1=%5.2f。\n",f1);//域宽m>0 且大于实际位数
    printf("f1=%-5.2f。\n",f1);//域宽m<0 且绝对值大于实际位数

}
测试结果为:


2、scanf函数

scanf函数是标准的库函数,能够根据格式控制符将键盘输入数据以相应的数据类型存储到内存,包含于stdio.h头文件。

scanf函数使用基本格式为:

scanf("格式控制字符串",输入地址列表);

其中格式控制字符串由格式字符与普通字符构成,格式字符用来指明输入数据存储类型,普通字符则需要读入;输入地址列表,用于指明数据存储地址。scanf函数格式字符使用与printf类似。 

scanf函数使用测试代码为:

/*

  scanf函数为阻塞型函数,函数执行后,等待用户的输入,直到接收到回车结束

  scanf函数使用基本格式为:
  scanf("格式控制字符串",输入地址列表);

  &num为取变量num地址

*/

#include "StdAfx.h"
#include "stdio.h"

void main()
{
    int age,number;

    printf("请输入整型数据age与number\n");

    scanf("%d%d",&age,&number);//%d%d两个数据间,可以添加空格、table键、回车
    printf("age=%d,number=%d\n",age,number);//输出数据

    int age1,number1;
    scanf("%d,%d",&age1,&number1);//%d,%d输入数据是需要以,间隔
    printf("age1=%d,number1=%d\n",age1,number1);//输出数据

    int age2,number2;
    scanf("%d%*c%d",&age2,&number2);//%d%*c%d输入数据间跳过一个字符
    printf("age2=%d,number2=%d\n",age2,number2);//输出数据
}


测试结果如下所示。

正确输入,测试结果为:

非法输入,测试结果:

根据scanf函数读入内存数据的特点,进行如下测试结果分析:


0 0
原创粉丝点击