scanf与printf转换说明符区别
【问题描述】 scanf函数与printf函数的转换说明符几乎一致,都可以使用%c,%d,%e,%f,%g,%a,%p,%o等。那么他们的转换说明符有何区别?
【解析】
printf函数中将%f,%e,%E,%g,%G同时用于float类型和double类型,而scanf只把它们用于float类型,而用于double类型时要求使用l修饰符,即使用类似于%le的转换说明符。这就意味着,如果将printf函数的格式代码照搬于scanf函数,当输入为double类型时,若没有l修饰符修饰,则会出现精度截短的现象。