檔案操作(ifstream、fstream、getline)

C++與檔案處理相關的有ifstream、ofstream及fstream這三個串流,使用時必須先函入fstream標頭,ifstream物件處理檔案輸入,ofstream物件處理檔案輸出,fstream物件處理檔案輸入輸出,建立串流物件之後,可以使用open()函式來連結串流,以下為讀入一個txt檔,並將檔案內容寫到另一個txt檔上。

#include<iostream>
#include<fstream>
using namespace std; 

int main(){ 
    ifstream fin;
    ofstream fout;
    fin.open("src.txt");     
    fout.open("dst.txt");   

    if(!fin){ 
        return 1; 
    } 

    char ch; 
    //用!fin.eof()來判斷,最後會多讀一次
    while(fin.peek()!=EOF) {   
        fin.get(ch); 
        fout.put(ch); 
    } 

    fin.close(); 
    fout.close();
    return 0; 
}

我們也可以一次讀取一行,下面程式從檔案一次讀取一行,接著再將檔案一行一行輸出到txt檔上。

#include <string>
#include <vector>
#include <fstream>
using namespace std;

int main(){
    ifstream in("test.txt");
    string inputStr;
    vector inputContent;
    while(getline(in, inputStr)){
        inputContent.push_back(inputStr);
    }
    in.close();

    ofstream out("output.txt");
    for(int i=0; i < inputContent.size(); i++){
        out << inputContent[i] << endl;
    }
    out.close();

    return 0;
}