所谓数据的输入输出是从计算机角度出发的。
C语言本身没有I/O语句,所有I/O都由函数来实现。
由编译系统提供的一系列函数,以库形式存放在系统中,不是C语言文本的组成部分。
库函数已编译成目标文件(.obj
),在连接阶段才与源程序编译成的目标文件相连接,生成可执行文件。
调用形式:
函数名(参数表)
注意在调用C语言库函数时,需要使用编译预处理命令#include <相关的头文件>
,使相应的头文件包含到用户源程序中。
C语言中,输入输出用到的头文件是
#include <stdio.h>
或
#include “stdio.h”
常用头文件:
stdio.h 定义输入输出函数
string.h 定义字符串操作函数
math.h 定义sin、cos等数学函数
printf函数的一般格式
格式:
printf( 格式控制,输出表列);
格式控制:用双引号括起来的字符串,包含两种信息
输出列表:要输出的数据,可以是变量或表达式,可以没有,多个时以“,
”分隔)
比如下面的写法:
printf( “%d %d”,a,b);
printf( “a=%d b= %d\n”,a,b);
%d格式:按数据实际长度输出,数据范围 -32768~32767。2个字节
// %d 格式的 printf() 函数使用案例
#include <stdio.h>
int main()
{
int a = 3, b = 4;
printf("%d %d\n ", a, b);
printf("a = %d, b = %d\n", a, b);
return 0;
}
运行结果:
3 4
a=3, b=4
格式说明通常用小写字母表示
数据位数小于m,左端补空格,反之按实际输出。
int a=123,b=12345 ;
printf(“%4d%4d ”,a ,b);
输出结果:
可以用%mld格式指定输出列宽
long c=135790;
printf(“%ld\n”,c);
printf(“%8ld”,c);
是将内存中的二进制位整个按八进制输出,所以输出值没有符号。
可以指定输出宽度%mo,长整型可以用%lo格式输出。
同o格式符,无符号,即无负十六进制数。
可以指定输出宽度%mx ,长整型可以用%lx格式输出。
int a= -1;
printf(“%d , %o , %8o , %x ”, a , a , a , a);
int型可以用%u格式输出,unsigned型也可以用%d、%o和%x格式输出。
#include <stdio.h>
int main()
{
unsigned int a = 65535;
int b = -2;
printf("a = %d, %o, %x, %u\n", a, a, a, a);
printf("b = %d, %o, %x, %u\n", b, b, b, b);
return 0;
}
值在0~255的整数,可以用%c形式输出为字符
//【字符数据的输出】
#include <stdio.h>
int main()
{
char c = 'a’;
int i = 97;
printf("%c, %d\n", c, c);
printf("%c, %d\n", i, i);
return 0;
}
//【字符串的输出】
#include <stdio.h>
int main()
{
printf("%3s, %7.2s, %.4s, %-5.3d\n", "CHINA","CHINA", "CHINA", "CHINA");
getchar();
return 0;
}
%f格式:整数部分全部输出,小数6位。可以有非有效数字输出,因为单精度有效位7位,双精度16位。
%m.nf格式:占m列,其中n位小数,左补空格。
% -m.nf格式:右补空格
%e格式:不指定m和n,小数6位,指数部分共5位,其中e和指数符号各1位,指数值3位。
%m.ne和% -m.ne格式:m、n、-的含义同前面。没有n时,自动=6。
可以自动根据数值大小选择 f 或 e 格式(选列少的)
不输出无意义的零
一般形式
格式:
scanf(格式控制,地址表列 );
// 【用scanf函数输入数据】
#include <stdio.h>
int main()
{
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
printf("%d, %d, %d\n", a, b, c);
return 0;
}
#include <math.h>
#include <stdio.h>
// 我没进行判断啥的 见谅 这里就用一下输入输出就行
int main()
{
float a, b, c, s, area;
scanf("%f,%f,%f", &a, &b, &c);
s = 1.0 / 2 * (a + b + c);
area = sqrt(s*(s - a)*(s - b)*(s - c));
printf("a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2f\n", a, b, c, s);
printf("area=%7.2f\n", area);
return 0;
}
联系客服