1、输出
1、一般格式
- printf(“格式子串”,输出列表)
printf("a=%d",a);
# 格式说明符和普通字符组成,输出参数
# 普通字符原样输出,格式说明符对应数据输出
# 输出参数可以是常量,变量,表达式
2、格式字符
-
不同的类型的数据的输出
-
d 带符号的十进制整数形式输出整数,正数不输出符号,int
-
o 无符号八进制整数输出(不带有0)
-
x 无符号十六进制整数输出(不带有0x)
-
u 无符号十进制整数形式输出
-
c 以字符形式输出,输出一个字符
-
s 以字符串形式输出,输出字符串的字符至结尾符’\0’为至
#include<stdio.h>
void main()
{
char *p="hello"; # 定义字符串,指针
printf("%s\n",p); # p 指针本身就是地址
}
1、f和lf(实型)
- 小数点后保留6位,多余6位,四舍五入
2、指数标识符(e)
-
科学计数法
-
e前e后都有数,e后必须是整数
-
小数点.前面是非0整数
printf("%E",375.67);
# 3.756700 * E +002
# E 前面是8位,小数点站一位,小数点后面为6位,前面为一个整数,E后面有4位,正负号占一位,后面三位,不够前面补0即可
3、格式字符的变化
-
md 右对齐,输出m个宽度数,m大于实际的长度的话,左边补齐空格,大于m的话,正常输出
-
-md就是左对齐,需要补空格的话,右边补齐
-
m.f m代表的是宽度,f代表的是小数点后的精度,m大于实际宽度的时候(小数点算一个宽度),左边补齐空格,如果m小于等于实际宽度的话,正常输出实际值
-
不管宽度怎么变,先保持小数点后的位数
-
-m.f 左对齐
-
%x 不输出0x,但是带上%#x就输出0x
4、字符输出函数(putchar)
-
输出一个字符
-
出错返回EOF
#include<stdio.h>
void main()
{
char ch = 'a';
putchar(ch);
putchar('\n');
putchar('v');
}
5、输出的特点
-
有什么就输出什么
-
多个printf,不会换行,需要\n可以换行
#include<stdio.h>
void main()
{
int a=7,b=-2;
printf("%d,%d",a,b); # 输出的时候带有逗号,
}
int a = 5
printf("%%d",a) # 没有赋值,相当于是d,转义了
printf("%%%d",a) # 输出的就是%5
2、输入
1、输入格式
-
scanf(“格式字符串”,&输入地址表)
-
通过&来获取到地址
#include<stdio.h>
void main()
{
int a,b;
scanf("%d,%d",&a,&b); # 输入的时候也要带上, 5,7
printf("%d,%d",a,b);
}
- 整数默认情况下,输入的时候,以tab键,空格,回车,但是字符型数据不行,直接敲即可
#include<stdio.h>
void main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d,%d",a,b);
}
-
字符不可以,因为空格,回车,tab键都是有对应的字符,赋值给变量
-
数字和字符都在连续输入的话,不要有空格,连在一起输入即可
scanf("%d%d%c%d",a,b,c,d)
12 23c 99 # 字符后面可以空格,但是数字后面有字符的话,不能能有空格,空格算一个字符
- scnaf(“%2d”)
#include<stdio.h>
void main()
{
int a,b;
scanf("%2d%4d",&a,&b); # a取2位,b取4位
printf("%d,%d",a,b);
}
123456789 # 输入
12,3456 # 输出的
- *4 跳过几位
#include<stdio.h>
void main()
{
int a,b;
scanf("%2d%*4d%2d",&a,&b); # b跳过4位
printf("%d,%d",a,b);
}
123456789
12,78
-
scanf("%.3f) 不能有精度的控制,错误的写法
-
字符数据输入的时候getchar
#include<stdio.h>
void main()
{
char ch;
ch = getchar();
printf("%c",ch);
}
- 输入的回车的避免
#include<stdio.h>
void main()
{
int a;
char b;
int c;
scanf("%d,%d",&a,&c);
// getchar(); # 要输入回车的话,用这个来获取到
scanf("%c",&b);
printf("%d,%d",a,c);
printf("\n%c,,,",b);
}