溫馨提示×

C++文件操作流的讀寫模式

c++
小樊
81
2024-11-08 23:09:26
欄目: 編程語言

在C++中,文件操作流主要有兩種類型:輸入流(istream)和輸出流(ostream)。輸入流主要用于從文件中讀取數(shù)據(jù),而輸出流主要用于將數(shù)據(jù)寫入文件。文件操作流的讀寫模式有以下幾種:

  1. ios::in:表示以輸入模式打開文件,用于從文件中讀取數(shù)據(jù)。
  2. ios::out:表示以輸出模式打開文件,用于將數(shù)據(jù)寫入文件。
  3. ios::app:表示以追加模式打開文件,即在文件末尾添加數(shù)據(jù)。如果文件不存在,則創(chuàng)建一個新文件。
  4. ios::binary:表示以二進制模式打開文件。這種模式可以用于讀寫任何類型的數(shù)據(jù),包括文本和二進制文件。
  5. ios::ate:表示以訪問模式打開文件,即直接定位到文件的末尾。這樣可以方便地讀取或?qū)懭胛募┪驳臄?shù)據(jù)。
  6. ios::trunc:表示以截斷模式打開文件,即清空文件內(nèi)容。如果文件已存在,則刪除原有內(nèi)容;如果文件不存在,則創(chuàng)建一個新文件。

這些模式可以組合使用,例如:

  • ios::in | ios::out:以讀寫模式打開文件。
  • ios::app | ios::binary:以二進制追加模式打開文件。
  • ios::ate | ios::binary:以二進制訪問模式打開文件。
  • ios::trunc | ios::out:以二進制截斷模式打開文件。

以下是一個簡單的示例,展示了如何使用這些模式打開文件:

#include <iostream>
#include <fstream>

int main() {
    std::ofstream file("example.txt", std::ios::out | std::ios::app); // 以追加模式打開文件
    if (file.is_open()) {
        file << "Hello, World!" << std::endl; // 將數(shù)據(jù)寫入文件
        file.close();
    } else {
        std::cerr << "Unable to open file" << std::endl;
    }
    return 0;
}

0