KIDS5S
2017-08-16 10:47
如题为什么printf里要加“%s\n”,为什么我去掉%s单独在前面或者后面加\n只能是第一个星号行回车
我把我自己的理解说一下…
1、在C语言入门 2-5 格式化输出语句里 有说,%s是用于输出字符串
printf()是用于在屏幕上打印信息出来。
而%s、%d、%c、%f都是用于规范打印出来的信息,%d是规定输出的是整数,%s是规定输出的是字符串。
int a=3;
printf("%d",a);
这样运行出来就会输出 3
而这道题里,要输出的是 "I Love imooc" 这是一个字符串 ,所以要用 %s 把它输出,如果用%d的话输出的是一段数字,而不是你原先要输出的 "I Love imooc" ,你可以试一下。 我刚刚也去试了一下。
而加\n是因为这道题里小编想让 "I Love imooc" 之后输出的一堆*号在它的下一行。 所以用了转义字符\n,让接下来出现的信息只能从下一行开始输出。
(\n的意思是 跳转到下一行,跟回车一样。)
2、去掉%s单独在前面加\n只能是第一个星号行回车:(这边我不明白什么叫单独在后面加\n,后面是指哪里……所以只回答了前面)
你看主函数 int main()里,是先调用了dividLine()这个函数,这个函数的printf()是在第一行输出的,printf()输出里有\n,说明从这边开始就到第二行了,接下来才调用到sayLove(),所以无论你在前面或者后面加\n 都只会出现在第二行里有空白的一行。
会不会说的太绕口……
你可以拿纸笔跟着程序一起走一遍,我看不懂输出的时候就是这样做的,当输出\n的时候你也跟着一起换行你就明白多啦。
无论c还是c++,printf的%s到要求是一个有效的指向字符数组的指针.对于此问题%s是对字符串的操作,/n是换行。需要在字符串后换行,去掉%s就是直接换行.
C语言入门
926021 学习 · 20793 问题
相似问题