Day3-输入输出

1.输入输出

1.1 字符输出函数
I/O操作的函数头文件:#include <stdio.h>
​
字符输出函数
    格式:putchar(c)
    参数:c为字符常量、变量或表达式,若c的值大于255则为乱码
    功能:把字符c输出到显示器上
    返值:正常,为显示的代码值

(demo1)

1.2 格式输出函数
字符输出函数
    格式:printf("格式控制串",输出表)
    功能:按指定格式向显示器输出数据
    输出表:要输出的数据
    格式控制串:包含两种信息
        格式说明:%[修饰符]格式字符,用于指定输出格式
        普通字符:原样输出
​
​
格式字符
i,d    十进制整数
x,X    十六进制无符号整数
o      八进制无符号整数
u      无符号十进制整数
c      单一字符
s      字符串
e,E    指数形式浮点小数
f      小数形式浮点小数
g      e和f中较短一种
%%     百分号本身
​
附加格式说明符
num    输出数据域宽,数据长度<m,左补空格;否则按实际输出
.n     对实数指定小数后位数(四舍五入)
       对字符串,指定实际输出位数
-      输出数据在域内左对齐(缺省右对齐)
+      指定在有符号数的正数前显示正号(+)
0      输出数值时指定左面不使用的空位置自动填0
#      在八进制和十六进制前显示前导0,0x
l      在d,o,x,u前,指定输出精度为long型
       在e,f,g前,指定输出精度为double型

(demo2)

1.3字符输入函数
字符输入函数getchar
    格式:getchar()
    功能:从键盘读一字符
    反值:正常,返回读取的代码值;出错或结束键盘输入,返回-1 (ctrl d)

(demo3)

1.4格式输入函数
格式输入函数scanf
    格式:scanf("格式控制串",地址表)
    功能:按指定格式从键盘读入数据,存入地址表指定存储单元中,并按回车键结束
    反值:正常,返回输入数据个数
    地址表:变量的地址,常用取地址运算符&
    
格式字符
h    用于d,o,x前,指定输入为short型整数
l    用于d,o,x前,指定输入为long型整数
     用于e,f前,指定输入为double型实数
m    指定输入数据宽度,遇空格或不可转换字符结束
*    抑制符,指定输入项读入后不赋给变量

(demo4)

1.5 处理输入函数留下的无用数据
方法1:
    用getchar()拿去无用数据
方法2:
    用抑制符*拿取无用数据

(demo5)

1.6 字符串输入函数的用法
字符串输入函数gets
    格式:char* gets(char *s)
    功能:从键盘输入一以回车结束的字符串放入字符数组中,并自动加'\0'
    说明1:输入串长度应小于字符数组维度
    说明2:与scanf函数不同,gets函数并不以空格作为字符串输入结束的标志

(demo6)

1.7 字符串输出函数的用法
字符串输出函数puts
    格式:int puts(const char*s)
    功能:向显示器输出字符串(输出完,换行)
    说明:字符数组必须以'\0'结束

(demo7)

1.8 综合案例

从键盘输入a,b,c的值,求一元二次方程y = ax^2 +bx+c的根,开平方用函数sqrt函数,在头文件math.h中,编译时用上.c文件后加-lm用于链接

#include <stdio.h>
#include <math.h>
​
int main(int argc,char *argv[])
{
    double a,b,c;
    printf("y = a*x^2 +b*x+c;a,b,c:");
    scanf("%lf %lf %lf",&a,&b,&c);
    
    if(b*b-4*a*c<0)
        printf("err");
    else
        printf("%.2lf %.2lf\n",((-b+sqrt(b*b-4*a*c))/(2*a)),((-b-sqrt(b*b-4*a*c))/(2*a)));
​
    return 0;
}

结果:

linux@ubuntu:~/C/day03$ gcc demo8.c -lm -Wall
linux@ubuntu:~/C/day03$ ./a.out
y = a*x^2 +b*x+c;a,b,c:1 6 5
-1.00 -5.00
  • 15
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值