1. 程式人生 > 其它 >檔案輸入與輸出(C++)

檔案輸入與輸出(C++)

技術標籤:C++的一些知識c++

一.描述

檔案的輸入與輸出在計算機的使用過程中非常的常見,這篇文章我們只介紹一些簡單的輸入與輸出,可以對檔案進行基本的操作。首先來明確一下輸入與輸出的概念:

輸入與輸出是相對的,一般我們是一程式的控制檯作為目標;
輸出就是從程式控制臺輸出到檔案中,也就是寫入檔案(write)
輸入就是從檔案中輸出到程式控制臺,也就是讀取檔案(read)

對於C++而言,我們需要使用標頭檔案fstream。

二.寫入檔案

1)我們建立一個ofstream物件
2)使用ostream方法來寫入,通常使用<<插入運算子(文字形式寫入)或者write()(二進位制形式寫入)

示例:

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

int main()
{
    ofstream fout;
    fout.open("E:\\test.txt", ios_base::app);
    //ofstream fout("E:\\test.txt", ios_base::app);
    fout<<"Dout";  //寫入你想寫的內容
    fout.close();
    system("pause"
); return 0; }

注意:
1)前兩行可以等效寫成註釋中的那一行。
2)open中的第二個引數ios::app,表示內容追加到文字最後,如果不加那麼每次寫入的內容都會覆蓋以前的內容。
3)注意操作完成以後一定要關閉檔案,fout.close();

ostream & write(char* buffer, int count);
二進位制輸入,buffer表示寫入檔案的二進位制資料起始位置,count表示寫入位元組的個數

三.讀取檔案

1)我們建立一個ifstream物件
2)使用o、istream方法來寫入,通常使用>>插入運算子(文字形式讀出)或者read()(二進位制形式讀出)

示例:

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

int main()
{
    ifstream fin;
    fin.open("E:\\test.txt");
    //ifstream fin("E:\\test.txt");
    
    //讀取一個字元
    // char ch;  
    // fin>>ch;
    // cout<<ch<<'\n'; //輸出這個存在ch裡的字元
    
    char buf[50];  
    fin>>buf;   //讀取一個單詞
    cout<<buf<<'\n';
    
    // fin.getline(buf,50);  //讀取一行內容,若果不超過50個位元組的話
    //cout<<buf;
    
    fin.close();
    system("pause");
    return 0;
}

注意:
1)前兩行可以等效寫成註釋中的那一行。
2)可以讀取單個字元,單個單詞,一行內容
3)注意操作完成以後一定要關閉檔案,fin.close();

istream & read(char* buffer, int count);
二進位制讀取,buffer 用於指定讀取位元組的起始位置,count 指定讀取位元組的個數。同樣,該方法也會返回一個呼叫該方法的物件的引用。