# **最基本的輸入輸出** ## 主要的程式架構 #### **先淺淺的寫一小段程式碼** ```cpp= #include <bits/stdc++.h> using namespace std; int main(){ return 0; } ``` ### ==這幾行基本上就是每一個程式都會出現的== 接著我們來分別介紹一下這幾行程式碼的用途吧! ##### #include <bits/stdc++.h> 在這個觀念上我們在程式的一開始是需要先導入函式庫 ```cpp= #include <bits/stdc++.h> ``` 這一行就是來導入函式庫的 ### 介紹一下一些好用、常用的函式庫 <bits/stdc++.h> 這個包山包海,我們會用這個 因爲這個太好用了,所以其他的就不教了,記好這個 ![螢幕擷取畫面 2025-03-05 122158](https://hackmd.io/_uploads/SJX3-UHjyl.png) 如果沒有加函式庫就會跑出這個 ##### using namespace std; 對比一下有沒有寫這行程式碼的差別: ### 有寫 ```cpp= #include <bits/stdc++.h> using namespace std; int main(){ cout<<"Hello, world"<<endl; return 0; } ``` ### 沒寫 ```cpp= #include <bits/stdc++.h> int main(){ std::cout<<"Hello, world"<<std::endl; return 0; } ``` 對比之後會發現,在輸出這個部分多了一些東西,可能我寫的少,所以看起來差不多,但實作上每一個屬於std命名空間的都需要加上 ==std::==,因此我們在競程會利用 **using namespace std;** 這段來縮短coding時間,但如果你是在使用c++做專案的話就另當別論 ##### int main(){ } 這段程式碼就是你一整個程式碼的主要部分 我們稱他爲 **主程式** ```cpp= #include <bits/stdc++.h> using namespace std; int main(){ } ``` 主函數最後的**return 0**是用來終止程式的,c++比較沒有嚴格强制,所以可寫可不寫 以上就是cpp最簡單的程式架構了 ## 輸入輸出程式 ##### 最簡單 平常的輸入輸出 我們最常用的輸入是 ```cpp= cin>>x; ``` 而輸出則是 ```cpp= cout<<x; ``` 這個有一個很好記的方法 c++的首字母,因為**加加**太麻煩了所以只用前面的英文字母,而輸入就是要把東西放進去程式裡,所以**in**程式最後的2個箭頭就是幫助資料輸入,像軌道一樣,接著輸出也是相同概念,in變成out,箭頭轉向 試試題目: 簡單輸入輸出[a001](https://judge.cchs.chc.edu.tw/ShowProblem?problemid=a001) ```cpp= #include <bits/stdc++.h> using namespace std; int main(){ string x; cin>>x; cout<<"hello, "<<x<<endl; return 0; } ``` 難一點點的輸入輸出[a012](https://judge.cchs.chc.edu.tw/ShowProblem?problemid=a012) ```cpp= #include <bits/stdc++.h> using namespace std; int main(){ string x; getline(cin,x); cout<<"Go, "<<x<<", go go"<<endl; return 0; } ``` 難一點點的輸入輸出[a013](https://judge.cchs.chc.edu.tw/ShowProblem?problemid=a013) ```cpp= #include <bits/stdc++.h> using namespace std; int main(){ string x; getline(cin,x); cout<<x<<' '<<x<<endl; return 0; } ``` ##### 另一個輸入輸出的方法 這個速度比較快(後面會講一個叫時間複雜度的東西,跟那個有關) 但這邊需要一個函式庫 ```cpp= #include <cstdio> ``` 輸入: ```cpp= scanf(%d,x); ``` 架構是scanf(變數型態,變數名稱) 輸出: ```cpp= printf(%d,x); ``` 架構跟上面差不多,前面變成printf ==這兩個不可以混用❌== ==這兩個不可以混用❌== ==這兩個不可以混用❌== ## 程式碼結尾 有兩種方法 ```cpp= cout<<endl; cout<<"\n"; ``` 一個在最後的部分用箭頭輸出endl(end of line簡寫) 另一個可以直接放在string(字串)的結尾,就不用多放後面的 **<<** ## 簡單介紹變數(下堂課會更深入的介紹) 整數 int 更大的的數字 long long 小數 float 精確小數(15位) double 字串 string 字元(只有一個字母或數字) char 布林值 bool