printf("%3s,%5.3s\n","Hello","Hello","Hello"); 的结果为什么是Hello, Hel
5个回答
展开全部
回复:
%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列的右侧,左补空格。
%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列的右侧,左补空格。
展开全部
首先,你这个语句只输出两个字符串,建议改成printf("%3s,%5.3s\n","Hello","Hello");
其次,这个%5.3s表示输出占5列,但只取字符串中左端3个字符
你的结果应该是Hello,空格空格Hel回车
这应该是最基础的C的知识了吧,建议你好好看看书,书上写的很详细的
其次,这个%5.3s表示输出占5列,但只取字符串中左端3个字符
你的结果应该是Hello,空格空格Hel回车
这应该是最基础的C的知识了吧,建议你好好看看书,书上写的很详细的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
%ms 输出占m个字元 不够m个补空格到m个
%m.ns 输出占m个字符,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
第一个是输出一个3最少3个字符的输出符号. 但hello为5个字符 所以输出hello
第二个是输出左端3个字符 所以输出hel
第三个hello 没有输出符 所以没有输出
%m.ns 输出占m个字符,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
第一个是输出一个3最少3个字符的输出符号. 但hello为5个字符 所以输出hello
第二个是输出左端3个字符 所以输出hel
第三个hello 没有输出符 所以没有输出
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
%3s, 格式输出字符串,右对齐,超出3个长度的,就全部输出;
%5.3s, 输出字符串占5个位置,有对齐,左补空格,输出3个字符;
%5.3s, 输出字符串占5个位置,有对齐,左补空格,输出3个字符;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
printf("%3s","hello");的意思是保证输出3位,当要输出的内容大于3位的时候,全部输出
printf("%5.3s","hello"); 输出5位,其中3位为输出的内容,其余空格
printf("%5.3s","hello"); 输出5位,其中3位为输出的内容,其余空格
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询