\( \newcommand{\ord}[1]{\mathcal{O}\left(#1\right)} \newcommand{\abs}[1]{\lvert #1 \rvert} \newcommand{\floor}[1]{\lfloor #1 \rfloor} \newcommand{\ceil}[1]{\lceil #1 \rceil} \newcommand{\opord}{\operatorname{\mathcal{O}}} \newcommand{\argmax}{\operatorname{arg\,max}} \newcommand{\str}[1]{\texttt{"#1"}} \)

進階語法-輸入輸出

scanf

主要用來輸入的函數
當讀到檔案結尾會回傳EOF
%d : dec
%i : integer
於 scanf 時有部份差異 (%d 只接受10進位, %i 可接受指定進位,如 0x23, 045),但於 printf 時 %d, %i 並無顯著差異

輸入一整行

printf

類似於scanf,printf也有以下的引數寫法
%[旗標][寬度][.精度]資料型態
因為printf和scanf的資料型態一樣,所以就不重複說了

stringstream

有的時候題目不會給說要輸入幾個數字
像是這一題
輸入有多行,每行長度小於1000字元
每行會有多個整數,請輸出每行的總和(總合為int範圍)

範例輸入:
1 2 3
45 67
100

範例輸出:
6
112
100

剛剛教的所有東西都不能用啊
這個時候就可以用stringstream

cin,cout輸入優化

眾所皆知,cin、cout的效能是非常慢的
但是加了以下的優化後就會跟scanf、printf差不多快
(甚至更快)

連續輸入

有些題目會說:
"測資有多行"、"有多筆測資"、"讀到檔案結尾(EOF)為止"

出現這種文字的都是教你連續輸入的意思

作業

暫時存放區
TEMP
第一題 第二題 第三題