printf("%3s,%5.3s\n","Hello","Hello","Hello"); 的结果为什么是Hello, Hel

 我来答
wcq334277
推荐于2017-09-07 · 超过25用户采纳过TA的回答
知道答主
回答量:150
采纳率:0%
帮助的人:46.1万
展开全部
回复:
%3s,3表示至少输出的字符数量,不足补空格,多则原样输出。
5>3,所以原样输出
%5.3s 输出占5列,但只取字符串中左端3个字符。这3个字符输出在5列的右侧,左补空格。
所以输出前三个字符"Hel"
延伸:
1.%e:不指定输出数据所占的宽度和数字部分的小数位数,有的C编译系统自动指定给出数字部分的小数位数为6位,指数部分占5位(如e+002),其中"e"占1位,指数符号占1位,指数占3位,总的指数部分占5位。数值按规范化指数形式输出。例如:printf("%e",123.456);输出如下:1.234560e+002(共13列,有的系统的规定有所不同);
2.%m.ne 输出的数据共占m列,其中有n位小数。如果数值长度小于m,则左端补空格。
后两个都是s格式符,用来输出字符串。
%m.ns 输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
心随云浮
2011-12-06
知道答主
回答量:19
采纳率:0%
帮助的人:23.1万
展开全部
首先,你这个语句只输出两个字符串,建议改成printf("%3s,%5.3s\n","Hello","Hello");
其次,这个%5.3s表示输出占5列,但只取字符串中左端3个字符
你的结果应该是Hello,空格空格Hel回车
这应该是最基础的C的知识了吧,建议你好好看看书,书上写的很详细的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
66504122
推荐于2017-09-07 · 超过11用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:26.6万
展开全部
%ms 输出占m个字元 不够m个补空格到m个
%m.ns 输出占m个字符,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。

第一个是输出一个3最少3个字符的输出符号. 但hello为5个字符 所以输出hello
第二个是输出左端3个字符 所以输出hel
第三个hello 没有输出符 所以没有输出
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我爱张媛媛哦
2011-12-06 · TA获得超过753个赞
知道小有建树答主
回答量:762
采纳率:0%
帮助的人:289万
展开全部
%3s, 格式输出字符串,右对齐,超出3个长度的,就全部输出;
%5.3s, 输出字符串占5个位置,有对齐,左补空格,输出3个字符;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhouhz87
2011-12-06 · TA获得超过135个赞
知道答主
回答量:214
采纳率:0%
帮助的人:98.4万
展开全部
printf("%3s","hello");的意思是保证输出3位,当要输出的内容大于3位的时候,全部输出
printf("%5.3s","hello"); 输出5位,其中3位为输出的内容,其余空格
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式