C语言学习第五天

继续上次的内容。

数据的基本操作:键盘输入和屏幕输出。在C语言中通过函数调用来实现输入输出。

格式:printf(格式控制符字符串,输出项表),比如printf("a(普通字符,原样输出)=%(是指输出数据格式)d(转换说明),a(可变长度的输入参数表与格式说明符一一对应),b")

常用格式字符:

%d:输出十进制有符号int型。

%n:输出十进制无符号int型。

%f:以小数形式(6位小数),输出float,double。

%e:以标准指数形式输出float,double。比如float b = 10.3;printf("%e",b);最后输出的形式是1.030000e+001(是指乘以10de3次方)。

%c:以字符形式输出单个字符。

修饰符:

l:加d、u前输出long型。比如long a = 10;printf("%ld",a);最后输出10。

L:加f、e前输出long double型。

d:加d、u前输出short型。

m:输出数据的最小位宽(小数点也算以为)。数据位宽大于m,按实际尾款输出;数据位宽小于m,右对齐,左补空格。比如printf("value is = %10f(最小位宽修饰)",32,6784728);,在这里占了10个宽度,f占的小数点6位,所以是6位小数,小数点还算一位,所以是9位,需要在3前加和空格部位。;数据位宽处于-m,左对齐,右补空格。

显示精度.m,对浮点数表示输出的n位小数。格式;%.nf。比如printf("value is = %.3f",32,6784728);最后显示是value is = 32.6785(这里需要四舍五入)。

格式化输入:

scanf(格式控制字符,输入地址表)。比如scanf("%d%f",&(取地址符)a(可变长度,输入地址参数表),&b)。

注意不使用&就是未初始化,格式字符是告诉有多少字节,写错的话最后数据可能就不能正确读入了。

遇到一下情况认为一个数据的输入结束:

1、空格、tab或回车。

2、达到输入位宽的限制。

3、遇到非法字符。

scanf("%2d%2d",&a,&b);从输入数据中截取两个位宽作为输入数据,如果输入非数值字符即停止输入,将非数值字符按正确格式输出。

scanf("%d,%d",&a,&b);在控制台输入时,逗号也要按照原样输入,如:12,34.注意普通字符也要按原样输入。

%c:输入一个字符,回车空格也算。

%d:输出十进制int型。

%f、%e:输入float数(不能指定精度)。

%%:输入一个%。

*:输入项再读入后赋值给任何一个变量。比如scanf("%2d%*2d%2d",&a,&b);输入的是123456的话,输出就是12和56.

常见错误:

scanf("%7.2(不能指定精度,位数可以)f",&a);scanf("%f\n(不能加换行符,会导致输入错误)",&a);scanf("%f",a(不能指定a的地址,会导致输出乱码,类型要与输出匹配))。

m:输入数据的位宽。

l:加d、u前输入long型;加f、e前输入double型。

L:加f、e前输入long double型。

h:加d前输入short型。

写个代码:

#include <stdio.h>  //标准输入输出头文件。h是头文件,stdio有许多函数信息,需要包含进来才能使用。
main()
{
    const double pi = 3.14159;
    double r;
    double circum;
    double area;
    printf("Input ri");
    scanf("%lf",&r);
    circum = 2 * pi * r;
    area = pi * r * r
    printf("输入个数:\n");
    printf("circum ference=%f,area=%f\n",circum,arae);
    printf("再输入个数:\n");
    printf("circum ference=%7.2f,area=%7.2f\n",circum,arae);
}

用%lf读入双精度实数,输出时%f就表示float和double不用区分;

调用sancf()输入数据时,通过地址指向变量;

%f告诉编译器scanf()在该地址存储一个float型数;

%lf告诉编译器scanf()在该地址存储一个double型数;

调用printf()输出数据时,编译器将float参数自动转化为double类型;

printf()无法区分float和double,所以输出时不需要区别单精度还是双精度。

*又是抑制字符。比如scanf("%d%*c%d",a,b);两个值的输入中间不论以什么字符进行读入都无所谓。

以上就是今天所学习的内容了,如有错误欢迎留言指正。

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值