c语言中scanf和printf
转换说明:
%d %i:有符号十进制整数,用%d显示float类型的值,不会转化为int类型;
%f:可显示float或double类型的值
%a,%A: 十六进制表示浮点数
%e,%E: 指数计数法表示浮点数,12.e24,12.E24。
%#o,%o:无符号八进制;前一个表示格式为014,后一个表示格式为14;
%#x,%x: 无符号十六进制,前一个表示格式为0xAA,后一个表示AA;
%#X,%X:无符号十六进制,前一个表示格式为0XAA,后一个表示AA;
%u:无符号十进制整数
%s:字符串char数组 不加&
%c:字符char
%p:指针
转义序列:
\t: 水平制表符
\n: 回车换行,将光标移到下一行开头
\r: 回车 ,将光标移到本行开头
\b: 退格
int输入输出
int a;
scanf_s("%d", &a);
printf("%d\n", a);
浮点型输入输出 double lf;float f; 控制小数点后几位用 %.2f。
double n;
scanf_s("%lf", &n);
printf("%f\n", n); //与输入不同
float m;
scanf_s("%f", &m);
printf("%f\n", m);
//小数点后两位
printf("%.2f\n", m);
char数组输入输出;以空格换行为结束判断标志
scanf_s相比较于scanf来说更安全,因为使用scanf_s函数需要设定有一个缓冲参数来规定缓冲区大小,因而不会有内存越界的问题,这一点在字符串的读取中有着体现。
scanf_s中参数大小为5,其中最后一个位置是\n,所以最多有4个char。
char s[5];
scanf_s("%s", s,5);
printf("%s", s);
输入时间12:36:20
int hh, mm, ss;
scanf_s("%d:%d:%d", &hh, &mm, &ss);
printf("%d:%d:%d", hh, mm, ss);
输入12 36 20
int hh, mm, ss;
scanf_s("%d%d%d", &hh, &mm, &ss);
printf("%d:%d:%d", hh, mm, ss);