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