C语言的输入和输出
C语言的输入和输出:
1、输出:
(1)、printf
点击查看代码
printf("控制格式",参数列表);
功能:向终端上显示要打印的信息
参数:
控制格式:%d %c %s
参数列表:(变量1,变量2.......)
unsigned int a;
printf("%c\n",a); 打印字符类型
printf("%d\n",a); 打印整形
printf("%u\n",a); 打印无符号整形
printf("%ld\n",a);打印长整形
printf("%lld\n",a);打印长长整形
printf("%#o\n",a);打印八进制( #代表显示八进制的前缀 )
printf("%#x\n",a);打印十六进制 (#代表显示十六进制的前缀 )
printf("%f\n",a); 打印浮点类型,显示小数点后6位
printf("%.2f\n",a);打印浮点类型,显示小数点后2位
printf("%g\n",a); 打印浮点类型,显示小数点后有效位
printf("%e\n",a); 打印浮点类型,会以指数的形式显示(例如:2e-2)
printf("%Lf\n",a); 打印long double类型浮点数据
printf("%p\n",&a); 打印一个变量的地址
printf("%s\n",a); 打印的是字符串
printf("%04d\n",a); 占用四个位置,没数据的位补充0
printf("%4d\n",a); 占用四个位置,没数据的位补充空格
printf("%-4d\n",a); 占用四个位置,- 代表左对齐 (不写 - 默认是右对齐)
printf("%d\t%d\n",a,a); 这里的\t是一个制表符 ( \t===>Tab)
printf("%%\n"); 打印一个%
printf中的转译字符:
printf("abc\067\n"); ==>\067 => '7'
printf("abc\67\n"); ==>\67 => '7'
printf("adc\x65\n") ==>\x65 => 'e'
printf("hello \"wo\"rld\n");=>\" 代表打印 "
printf("hello \'wo\'rld\n"); =>\' 代表打印 '
'\n' =>回车
'\t' =>Tab
'\a' =>发出一个“咚”
'\b' =>退格
'\r' =>回滚行首
??并从此位置开始输出 '\b' 后面的字符(空字符\0和换行符\n除外);
?'\b'用法案例:
点击查看代码
//案例1:
#include
int main(void)
{
printf("1234567\b\b\b\b89");
return 0;
}
//输出结果:
//1238967
//在输出1234567之后,因为紧接着要输出4个\b,这时程序把光标前(左)移了4个字符的位置,然后输出了89这两个字符,占用了45这两个字符的位置。
//案例2:
#include
int main(void)
{
printf("我喜欢用C语言写\b\b\b程序");
return 0;
}
//输出结果:
//我喜欢用C程序写
//可见: 无论是汉字还是英文字母,\b的行为是一样的;
//案例3:
#include
int main(void)
{
printf("12345\n67\b\b\b\b89");
return 0;
}
//输出结果:
//12345
//89
//可见,\b遇到换行符\n,光标就不会再向前(左)移动了。
2、输入:
(1)、scanf
点击查看代码
scanf("控制格式",地址列表);
功能:从终端读取控制格式的内容
参数:
控制格式:%c %d %u %s
地址列表:&a,&b
返回值:
成功读取到的项目的个数
失败返回EOF(-1)
scanf("%d",&a); //输入一个整数
scanf("%d%c",&b,&a); //同时输入两个字符 10c 回车
scanf("%d,%c",&b,&a); //同时输入两个字符 10,c 回车
scanf("%d %c",&b,&a); //同时输入两个字符 10 c 回车
scanf("%d",&b); //先输入一个整数,回车
scanf("%*c%c",&a); //%*c它会吃掉输入的第一个字符
scanf("\n%d",&b);
scanf("\t%d",&b); //输入的时候会跳过回车,tab,空格
scanf(" %d",&b);
scanf("%d\n",&b);
scanf("%d\t",&b); //输入整数后,回车,tab,空格,都没反应在随便输入一个字符,就可以结束程序了
scanf("%d ",&b);
char a[10]; //这是一个char类型有10成员的数组,a是数组名
scanf("%[^\n]",a); //%[^\n]:除了'\n'之外的所有字符全输入
printf("a = %s\n",a);
???案例:
点击查看代码
#include
int main(int argc, const char *argv[])
{
int a, b;
scanf("%d%d", &a, &b);
printf("a=%d, b=%d \n", a, b);
char c, d;
scanf("%c%c", &c,&d);
printf("c=%c, d=%c \n", c, d);
return 0;
}
//执行结果:
//12 23
//a=12, b=23
//x y
//c=
//,d=x
??我们可以使用下面的方法进行,把此换行符消除:
点击查看代码
#include
int main(int argc, const char *argv[])
{
int a,b;
scanf("%d%d",&a,&b);
printf("a=%d,b=%d\n",a,b);
getchar(); //用于消除掉上一次输入数据的结尾的换行符
char c,d;
scanf("%c%c",&c,&d);
printf("c=%c,d=%c\n",c,d);
return 0;
}
//运行结果:
//linux@ubuntu:~/c$ gcc test.c
//linux@ubuntu:~/c$ ./a.out
//13 14
//a=13,b=14
//a b
//c=a,d=b