本單元語法速查表
| 語法 | 用途 | 備註 |
|---|---|---|
#include <fstream> |
檔案串流標頭檔 | ifstream/ofstream 都住這裡 |
ifstream fin("input.txt"); |
開檔供讀取 | 之後 fin >> x、getline(fin, s) 照 cin 用 |
if (!fin) |
檢查開檔是否成功 | 失敗不會有錯誤訊息,要自己問 |
while (fin >> x) |
讀到檔案結尾 | 跟 while (cin >> x) 同一套(上冊 4.8) |
while (getline(fin, line)) |
逐行讀到檔案結尾 | 換行被讀走丟棄 |
ofstream fout("output.txt"); |
開檔供寫入 | 開檔即清空既有內容;檔案不存在就建立 |
fout << ... |
寫進檔案 | 用法同 cout << |
ofstream fout("log.txt", ios::app); |
附加模式開檔 | 寫在既有內容後面 |
freopen("input.txt", "r", stdin); |
cin 改讀檔案 | #include <cstdio>;程式其餘一行不改 |
freopen("output.txt", "w", stdout); |
cout 改寫檔案 | 上傳 OJ 前要拿掉 |
#ifdef LOCAL … #endif + -DLOCAL |
本機專屬程式碼 | 12.9 的條件編譯;OJ 上自動失效 |
./sum < in.txt > out.txt |
(延伸)終端機重導向 | 程式零修改;Windows 在 cmd.exe 用 sum.exe |