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

来源:5-2 函数调用

KIDS5S

2017-08-16 10:47

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

写回答 关注

2回答

  • 爱吃西瓜的猫_
    2017-08-16 16:14:18
    已采纳

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

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


    爱吃西瓜的猫... 回复KIDS5S

    不用谢~

    2017-08-20 16:02:33

    共 2 条回复 >

  • qq_北贝_0
    2017-08-16 16:18:26

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

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926021 学习 · 20793 问题

查看课程

相似问题