課程
/后端開發
/C
/C語言入門
如題為什么printf里要加“%s\n”,為什么我去掉%s單獨在前面或者后面加\n只能是第一個星號行回車
2017-08-16
源自:C語言入門 5-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的時候你也跟著一起換行你就明白多啦。
KIDS5S 提問者
愛吃西瓜的貓_ 回復 KIDS5S 提問者
無論c還是c++,printf的%s到要求是一個有效的指向字符數組的指針.對于此問題%s是對字符串的操作,/n是換行。需要在字符串后換行,去掉%s就是直接換行.
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
2 回答為什么第二個printf格式和第一個printf格式不一樣為什么第二個里面不用%s\n,然后后面還要加個n
2 回答為什么在printf后刪掉%s\n就可以正常打印
2 回答為什么這里不用加%s\n了
1 回答為什么這個的printf里邊就不需要%s\n呢
2 回答為什么/n要加在歲后面為什么不加在%d后面
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-08-16
我把我自己的理解說一下…
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的時候你也跟著一起換行你就明白多啦。
2017-08-16
無論c還是c++,printf的%s到要求是一個有效的指向字符數組的指針.對于此問題%s是對字符串的操作,/n是換行。需要在字符串后換行,去掉%s就是直接換行.