C语言-printf()和scanf()的输出输入及格式

printf()
  1. %d:用来输出一个有符号的十进制数。
    例子:%d、%5d(指定输出的数据的域宽)、%ld(输出长整型的数据)、%lld(输出双长整型的数据)
  1. %c:用来输出一个字符。
    例子:%c、%5c(指定输出字符的域宽)
  1. %s:用来输出一个字符串。
    例子:printf("%s",“STUDY HARD”)
    输出:STUDY HARD
  1. %f:用来输出实数,以小数形式输出。
    例子:%m.nf型 %6.5f 指输出实数数据占6列,其中包括五位小数。
  1. %e:以指数形式输出实数。
  1. %x:以十六进制输出整数。
    例子:int a=-1; printf("%x",a);
    输出:ffffffff
  1. %o:以八进制整数形式输出。
    例子:int a=-1; printf("%o",a);
    输出:37777777777
  1. %i:按十进制整数数据的实际长度输出。相对%d较为少用。
  1. %u:用来输出一个无符号的十进制数。区别于%d。

格式附加字符:

字符说明
l用于长整型整数,可加在格式符d、o、x、u前面
m表示数据最小宽度
n对实数,表示输出n位小数;对字符串,表示截取的字符个数
-输出的数字或字符在域内靠右

其他的一些具体修饰:
在这里插入图片描述
scanf()

在这里插入图片描述
举例:用scanf()读取:-13.45e12# 0

  • 如果其对应的转换说明是%d,scanf()会读取3个字符(-13)并停在小数 点处,小数点将被留在输入中作为下一次输入的首字符。
  • 如果其对应的转换 说明是%f,scanf()会读取-13.45e12,并停在#符号处,而#将被留在输入中作 为下一次输入的首字符;然后,scanf()把读取的字符序列-13.45e12转换成相 应的浮点值,并储存在float类型的目标变量中。
  • 如果其对应的转换说明 是%s,scanf()会读取-13.45e12#,并停在空格处,空格将被留在输入中作为 229
    下一次输入的首字符;然后,scanf()把这 10个字符的字符码储存在目标字符 数组中,并在末尾加上一个空字符。
  • 如果其对应的转换说明是%c,scanf() 只会读取并储存第1个字符,该例中是一个空格 [4]。

写一个我之前没用过的: * 宽度修饰符的使用
1.输出:用星号 * 修饰符代替字段宽度。

/* varwid.c -- 使用变宽输出字段 */ 
#include <stdio.h> 
int main(void)
{
	unsigned width, precision; 
	int number = 256; 224
	double weight = 242.5; 
	
	printf("Enter a field width:\n"); 
	scanf("%d", &width); 
	printf("The number is :%*d:\n", width, number);
	//*在d的前面,width和precision提供打印weight的格式化信息。
		
	printf("Now enter a width and a precision:\n");
	scanf("%d %d", &width, &precision);
	printf("Weight = %*.*f\n", width, precision, weight);
	printf("Done!\n");
	return 0;
}

2.输入:scanf()中 * 的用法与此不同。把 * 放在%和转换字符之间时,会使得 scanf()跳过相应的输出项。

/* skiptwo.c -- 跳过输入中的前两个整数 */
 #include <stdio.h> 
 int main(void)
 {
 	int n; 
 	printf("Please enter three integers:\n"); 
 	scanf("%*d %*d %d", &n); 
 	//跳过两个整数,把第3个整数拷贝给n。
 	
 	printf("The last integer was %d\n", n); 
 	return 0;
}
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值