main() {char a[20]="How are you?",b[20];scanf("%s",b);printf("%s %s\n",a,b);

运行结果是Howareyou?How可我觉得是HowHow输出字符串a时为什么遇到第一个空格不终止啊谢谢大家帮忙啊还有个问题doublex;x=-3223.87654;p... 运行结果是How are you? How 可我觉得是How How 输出字符串a时为什么遇到第一个空格不终止啊 谢谢大家帮忙啊
还有个问题 double x;x=-3223.87654;printf("%-6.2e\n",x);
输出为-3.2e+03 为什么啊 这个输出格式里的6和2到底指什么 谢谢
展开
 我来答
bloodelf02
推荐于2016-05-17 · TA获得超过1657个赞
知道小有建树答主
回答量:328
采纳率:0%
帮助的人:489万
展开全部
字符串是以看不见的 '\0'字符结束的,不是空格,所以How are you? 可以打印完; 至于输入的时候,scanf用空格当做分隔符了,所以再输出b的时候没有了后半截。

printf的格式的意义用MSDN搜 “Format Specification Fields: printf and wprintf Functions”

6.2的意思是,输出至少(注意是至少)占用6位(包括小数点".", e+003 的"e+" ),同时小数点后有两位。

你把代表左对齐的“-”去掉,然后打印

int main()
{
double x;x=-3223.87654;

printf("%e\n",x);
printf("%20e\n",x);

}

很容易数明白的。
百度网友c2f81b488
2009-09-27 · TA获得超过127个赞
知道答主
回答量:221
采纳率:0%
帮助的人:164万
展开全部
b遇到第一个空格终止时因为scanf遇到空格就不再读,而不是因为printf不打印。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
北风微风
2009-09-27 · TA获得超过1094个赞
知道小有建树答主
回答量:411
采纳率:0%
帮助的人:0
展开全部
输出终止?字符串a,b连续输出的。
读取的时候像ls所说的一样,scanf跳过首空白读取内容后遇到空白就返回。

printf("%-6.2e\n",x);
6表示输出数据占的总的宽度,2表示保留小数位的个数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宝我独11
2009-09-28 · TA获得超过425个赞
知道小有建树答主
回答量:397
采纳率:100%
帮助的人:406万
展开全部
1.字符串不是以空格结尾的,而是以'\0'结尾的.
2,6指的是将显示字符的总宽度,.2表示小数点后保留两位..
3,scanf在接收字符时遇到空格就不再读入.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式