# Ch1 輸出 > 搭配 [Zero Judge 高中生程式解題系統](https://zerojudge.tw/Problems) ## > 上一章:[新手村任務](https://hackmd.io/s/rJrk6L35-) > 下一章:[變數與輸入](https://hackmd.io/s/HJtZXMpqb) > 回目錄:[國立科學園區實驗中學C++程式語言自學講義](https://hackmd.io/s/B18yT_i5Z) ## <font color='darkblue'>什麼是輸出</font> 在上一章,我們成功執行了空程式。 空程式名副其實,什麼功能也沒有,就是一個空空的小黑窗。 在這一章,我們要讓小黑窗印出訊息。 ## <font color='darkblue'>印出一句話(一行文字)</font>  想像一隻開口向右的小精靈,對你說Hello! ```cpp= cout << "Hello"; ``` 以上這行程式,就是讓小黑窗印出「Hello」的功能 你可以改成任何你想印出的資訊,例如 ```cpp= cout << "Bang!"; ``` 無論如何,只要想印出資訊,一定先打一個cout,然後兩個小於符號\(\<\<\),接著是想印出的訊息,並在前後用雙引號\(\"\)包住。 這個用雙引號包住的訊息,我們稱做<font color='red'>**字串**</font> > <font color="darkgreen"> 【學生練習題】</font> > - [ ] [Zero Judge a001: hello, world ](https://zerojudge.tw/ShowProblem?problemid=d483) <!-- > - [ ] [Green Judge d483: Hello! ](http://www.tcgs.tc.edu.tw:1218/ShowProblem?problemid=a001) --> ## <font color='darkblue'>換行 (印出多行文字)</font> 如果想要在文字間換行 ```cpp= (這是錯誤的程式喔!) cout << "This is a line That is another line" ; ``` 直接在程式裡面幫句子換行的話,按下執行是會跳出錯誤的! 那麼究竟要怎麼讓電腦印出「換行」的文字呢? 在C++語言裡,換行符號是`endl` 把要輸出的文字依照想換行的地方拆開 每次只輸出一句,輸出之後都接上換行符號`endl` ```cpp= cout << "This is a line" << endl; cout << "That is another line" << endl; ``` 如此一來,就可以印出兩行文字了 如果想印三行也是可以的,就算是100行也可以喔 ```cpp= cout << "I have a pen" << endl; cout << "I have an apple" << endl; cout << "Ah, apple pen" << endl; ``` > Q:為什麼`endl`不能直接接在字串後面呢? > 像是`"I have a pen endl"`或是`"I have a pen"endl` ? 因為`endl`本身不是字串,是程式語言裡的特殊代碼 在C++輸出的規則裡,如果想連續輸出不同類型的東西(例如字串和`endl`),就要用`<<`這個符號來把訊息「串起來」 <!-- > <font color="darkgreen"> 【學生練習題】</font> > - [ ] [Green Judge a002: This is a book.](http://www.tcgs.tc.edu.tw:1218/ShowProblem?problemid=a002) --> 如果只想用一次`cout`就輸出完好幾行,該怎麼做呢? 有兩種方法 第一種方法,其實`endl`這個符號不一定要放在每句程式的末端,只要再用`<<`把它和下一句話串起來就能達成一樣的換行效果,例如 ```cpp= cout << "I have a pen" << endl << "I have an apple" << endl << "Ah, apple pen" << endl; ``` 第二種方法,有一個符號`\n`代表的就是換行的「字串」,它和`endl`不一樣,它真的是字串,可以直接放在字串裡面喔,例如 ```cpp= cout << "I have a pen\nI have an apple\nAh, apple pen\n"; ``` 只要把`\n`這個符號放在任何想換行的地方,就可以印出換行的效果了 你可能會覺得寫完之後看了覺得這種寫法好亂 沒錯我也這麼覺得 所以我習慣上還是會每一行分開寫(一行一個`cout`配一個`endl`) 不過還是以你自己喜歡為主! ## <font color='darkblue'>印出運算結果</font> 試著運行看看這行程式 ```cpp= cout << 1+2+3 ; ``` 小黑窗會直接印出6呢! 這就是程式的運算功能,不管是加減乘除還是更複雜的運算都做得到 記得`1+2+3`不是字串,不需要放在雙引號內,直接寫就好囉! 也可以試試更複雜的 ```cpp= cout << (8+10)*6/4-3 ; ``` 一切的運算規則就和數學的規則一樣,括號優先,然後先乘除,後加減 如果想要將兩個運算結果用空白隔開,可以這樣做 ```cpp= cout << 1+2+3 << " " << 4+5+6 ; ``` 還記得上一段所說,只要想把不同的訊息接連著印出來,就可以用`<<`來把訊息串成一串 當然,中間的字串可以改成任何想要的字串 就算不放任何字串也是可以的 ```cpp= cout << 1+2+3 << 4+5+6 ; ``` 這樣小黑窗印出的就會是615,6和15黏在一起了 未來我們在green judge上做的題目,大多都會是要用空格隔開答案的 如果忘記該怎麼做,可以再回來這篇看喔! ## > 上一章:[新手村任務](https://hackmd.io/s/rJrk6L35-) > 下一章:[變數與輸入](https://hackmd.io/s/HJtZXMpqb) > 回目錄:[國立科學園區實驗中學C++程式語言自學講義](https://hackmd.io/s/B18yT_i5Z)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up