目录:D:\Cpp\Examples\学习C++的每一天\第二天9.29\输入输出函数\putchar
//输入一个 10进制 16 以内的数字,通过%x 把这个数字打印成1个16进制数字;
int n = 0;
printf("请输入一个16以内的数字:");
scanf_s("%d", &n);
printf("%d\n", n); //%d,打印出十进制
printf("0x%04x\n", n); //%x,打印出十六进制 2x,就是占两个位置: 0x e,
printf("0x%08x\n", n1); //08 指定数据的最小输出宽度为8,若不够8位,则补零,大于8位,则按照原位数输出。
printf加强功能,宽度管理:
a)整数宽度:右对齐占8个位置,
例如:printf("%8d %8d",32,n);右对齐占8个位置;
printf(“%-8d %-8d”, 32 ,n);左对齐占8个位置;
1、输出函数:
a) putchar:带入一个ASCII范围的数值,打印这个ASCII码的文本;(等价于printf("%c",99) );
b) puts:打印一个没有格式化的字符串,puts自带换行,等价于printf("字符串\n");
c) printf:综合性格式化输出的函数。
对比:
putchar:将指定数值对应的ASCII字符打印到屏幕上.
putchar(c)
(1)当c为一个被单引号(英文状态下)引起来的字符时,输出该字符(注:该字符也可为转义字符);
(2)当c为一个介于0~127(包括0及127)之间的十进制整型数时,它会被视为对应字符的ASCII代码,输出该ASCII代码 对应的字符;
(3)当c为一个事先用char定义好的字符型变量时,输出该变量所指向的字符。
注意: 该函数的变量及输出结果只能为一个字符
数字也是字符。printf("%d",m) 等价于 putchar(48 + m) ;putchar(48)打印的是字符 0 ,那49的ascii码就是字符1,所 以48 + 就可以输出对应的数。
例子:把十进制转为十六进制
m = (int)pow(16, i);
m = n /m % 16;
if (m < 10)
putchar(48 + m); // 等价于 printf("%d", m); 0-9
else
putchar('A' + m - 10); // A-F
putc :不但指定数值,而且还指定打印的对象;如: stdout(standard out) ,是指打印到屏幕;
putc 可以制定一个文件进行打印,可以认为STDOUT是一种特殊的文件。
putc('x',stdout) 等价于 putchar('x')
例如:putchar('a'+3); a的ASCII码是97,加3 = 100,100对应的字符就是 d;
putchar(99); 打印结果是c
2、输入函数:
a) getchar:在键盘上输入一个ASCII码的文本,返回值得到的是一个数值。 c = getchar() 等价于 scanf("%c",&c);
可能会执行上一行语句的内容(缓冲区,比如说换行)。
fflush(stdin)可以清理掉前面输入缓冲中剩余的数据,经常在getchar函数之前使用这个函数。
b) gets:gets (s) 等价于 scanf("%s",s);
c) scanf:综合性格式化输入;
d) scanf_s:是避免输入字符串或字符越界的安全版本,VS版本常用这个。
在使用%c和%s读入字符或字符串时,应在地址参数后附加一个缓冲区边界值
例如:
char s[20];
scanf_s("%s", &s,sizeof(s)-1); //_countof(s) ,也可以