一、格式的输入输出函数(printf/scanf)
1、printf格式输出函数
头文件:#include
功能:以你固定号的格式向终端输出
原型:int printf(const char *format, ...); //...表示可变参
format:输出格式串
形式:%[修饰符]格式控制符 (%d、%u、 %c、%s、 %f 、%e、%#x、 %#o、%% )
修饰符:
m:可以设置输出数据的域宽
:可以将系统默认的右对齐改为作齐
0:将设置域宽空余的部分用0来补
注意:和0不能一起使用
.n:若在浮点类型中表示设置小数点后n位输出,并且也进行四舍五入
若在字符串中表示设置字符串输出位
#include <stdio.h>
int main(int argc, const char *argv[])
{
int a = 345, c = ‐5;
printf("%d%d\n", a, a);
printf("%+d%+d\n", a, a);
printf("*******************************\n");
printf("%5d%5d\n", a, a);
printf("%05d%05d\n", a, a);
printf("*******************************\n");
printf("%‐5d%‐5d\n", a, a);
//左对齐,不允许使用0
//printf("%0‐5d%0‐5d\n", a, a)是错的
printf("%+d\n", c);
float b = 3.1455926;
printf("%f\n", b);
printf("%.2f\n", b);
return 0;
}
2、scanf 格式输入函数
头文件:#include
功能:按照指定的格式从键盘输入数据,存入地址表指定存储单元
中,并按回车键结束
原形:int scanf(const char *format, ...);
参数:format 指定输入格式,后面跟要输入的变量的地址表,为不定
参,用“...”代表
返回值 :成功返回输入的变量的个数,失败返回1(EOF)
格式说明:%[修饰符]格式字符( %d、%c、%s、 %f ) ,用于指定
输出格式
修饰符:
l: 在d,o,x,u前,指定输出精度为long型
在e,f,g前,指定输出精度为double型
m:指定输入数据宽度,遇空格或不可转换字符则结束
*:抑制符,指定输入项读入后不赋给变量
地址表:保存输入数据的变量的地址
垃圾字符的回收:
在输入多个字符的时候,往往会产出空格以及回车这个垃圾字符,所以需要处理
scanf("%c%c%c", &a, &b, &c);
方法1:使用空格隔开
scanf("%c %c %c", &a, &b, &c);
方法2:使用%*c隔开,但是那次只能回收一个
scanf("%c%*c%c%*c%c", &a, &b, &c);
方法3:使用getchar来回收垃圾字符
scanf("%c", &a);
getchar();
scanf("%c", &b);
getchar();
scanf("%c", &c);
getchar();
#include <stdio.h>
int main(int argc, const char *argv[])
{
//在输入一个字符串的时候,需要保证字符串的长度足够大
char c[32];
scanf("%s", c);
printf("c = %s\n", c);
return 0;
}
字符的输入输出函数(getchar/putchar)
#include <stdio.h>
int main(int argc, const char *argv[])
{
#if 0
//传一个字符
putchar('a');
putchar('\n');
//传一个字符的ascii
putchar(97);
putchar(10);
//传一个变量
char a = 'h', b = 99;
putchar(a);
putchar(b);
putchar(10);
putchar(10);
char c;
c = putchar(a);
putchar(10);
printf("c = %d %c\n", c, c);
#endif
char a, b, c;
a = getchar(); //输入字符无参数
getchar(); //回收空格
b = getchar();
getchar();
c = getchar();
putchar(a);
putchar(10);
putchar(b);
putchar(10);
putchar(c);
putchar(10);
return 0;
}
字符串输入(gets)和输出(puts)函数
#include <stdio.h>
int main(int argc, const char *argv[])
{
#if 0
//自带换行功能
puts("hello world");
//printf("\n");
//putchar(10);
//puts("")
char a[] = "nihao beijing";
int num;
num = puts(a);
printf("num = %d\n", num);
//puts()能统计字符串的长度包括'\0'(相当于sizeof(a))
#endif
//在输入一个字符串的时候,必须保证字符串的长度足够大,否则会内存溢出
char c[32], *d;
d = gets(c);
printf("c = %s\n", c);
printf("d = %s\n", d);
return 0;
}