为了账号安全,请及时绑定邮箱和手机立即绑定

为什么printf里要加“%s\n”,为什么我去掉%s单独在前面或者后面加\n只能是第一个星号行回车

如题为什么printf里要加“%s\n”,为什么我去掉%s单独在前面或者后面加\n只能是第一个星号行回车

正在回答

2 回答

我把我自己的理解说一下…

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的时候你也跟着一起换行你就明白多啦。


1 回复 有任何疑惑可以回复我~
#1

KIDS5S 提问者

非常感谢!
2017-08-18 回复 有任何疑惑可以回复我~
#2

爱吃西瓜的猫_ 回复 KIDS5S 提问者

不用谢~
2017-08-20 回复 有任何疑惑可以回复我~

无论c还是c++,printf的%s到要求是一个有效的指向字符数组的指针.对于此问题%s是对字符串的操作,/n是换行。需要在字符串后换行,去掉%s就是直接换行.

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么printf里要加“%s\n”,为什么我去掉%s单独在前面或者后面加\n只能是第一个星号行回车

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信