首頁 後端開發 C++ 在C++中使用文字檔進行輸入輸出

在C++中使用文字檔進行輸入輸出

Aug 22, 2023 pm 02:49 PM
文件操作 c++檔案io 文字檔讀寫

在C++中使用文字檔進行輸入輸出

在C 中,文字檔案的處理是非常重要的,因為大部分程式都需要和外部檔案進行輸入輸出,例如讀取儲存在磁碟上的資料檔案或將程式內部的資料儲存到文件中。因此,本文將介紹如何在C 中使用文字檔進行輸入輸出。

一、文字檔案的開啟與關閉

在C 中,需要使用檔案流類別物件(fstream)進行檔案的讀寫操作。在使用文件之前,需要先建立文件流對象,並將其與文件關聯起來。文件流物件的建構函式可以接受檔名和開啟方式作為參數。 C 中常見的檔案開啟方式有以下三種:

  1. ios::in:只讀方式開啟檔案。
  2. ios::out:只寫方式開啟檔案。
  3. ios::app:追加方式開啟檔案。

下面是一個簡單的例子,示範如何開啟檔案:

#include <fstream>
using namespace std;

int main()
{
    // 创建文件流对象并关联文件
    fstream file("example.txt", ios::in | ios::out);

    // 判断文件是否打开成功
    if (!file)
    {
        cout << "无法打开文件" << endl;
        return -1;
    }

    // 文件操作

    // 关闭文件
    file.close();
    return 0;
}
登入後複製

在上述程式碼中,透過fstream類別的建構子建立了一個名為file的檔案流對象,並將其與檔案example.txt關聯起來。開啟檔案時,使用了一種既可讀又可寫入的方式。換句話說,當需要對文件進行讀取操作時,需要使用ios::in選項;當需要對文件進行寫入操作時,需要使用ios::out選項;當需要在文件末尾添加內容時,需要使用ios ::app選項。這裡為了方便起見,使用了既可讀又可寫的方式。

在檔案操作完成後,需要關閉檔案。這可以透過檔案流物件的close()函數來實現。

二、從檔案讀取資料

在開啟文字檔案之後,我們可以使用檔案輸入流物件(ifstream)從文字檔案讀取資料。 C 提供了多種方法來讀取檔案中的數據,包括以下幾種:

  1. getline()函數:從檔案讀取一行文字資料。
  2. 運算子:從檔案中讀取一個單字或一個數值。
  3. read()函數:從檔案中讀取指定長度的資料。
  4. get()函數:從檔案中讀取一個字元。
  5. peek()函數:預讀下一個字符,但不從檔案移除。
  6. ignore()函數:忽略檔案中指定數量的字元。

下面是一個簡單的例子,示範如何從檔案中讀取資料:

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

int main()
{
    // 创建文件流对象并关联文件
    ifstream file("example.txt");

    // 判断文件是否打开成功
    if (!file)
    {
        cout << "无法打开文件" << endl;
        return -1;
    }

    // 读取文件内容
    string str;
    while (getline(file, str))
    {
        cout << str << endl;
    }

    // 关闭文件
    file.close();
    return 0;
}
登入後複製

在上述程式碼中,我們建立了一個名為file的輸入檔案流對象,並將其關聯到檔案example.txt。在while循環中,透過呼叫getline()函數逐行讀取檔案內容,並將每行資料儲存在字串變數str中。最後透過cout輸出讀取到的內容。

三、寫入資料到檔案

在C 中,使用檔案輸出流物件(ofstream)可以寫入資料到文字檔案。常用的寫入函數包括以下幾種:

  1. <<運算子:寫入一個單字或數值。
  2. put()函數:寫入一個字元。
  3. write()函數:寫入指定長度的資料。

下面是一個簡單的例子,示範如何寫入資料到檔案:

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

int main()
{
    // 创建文件流对象并关联文件
    ofstream file("example.txt");

    // 判断文件是否打开成功
    if (!file)
    {
        cout << "无法打开文件" << endl;
        return -1;
    }

    // 向文件中写入数据
    for (int i = 1; i <= 10; i++)
    {
        file << "This is line " << i << endl;
    }

    // 关闭文件
    file.close();
    return 0;
}
登入後複製

在上述程式碼中,我們建立了一個名為file的輸出檔案流對象,並將其關聯到檔案example.txt。在for迴圈中,透過<<運算子向文件中寫入資料。每次循環寫入一行文字數據,最後透過close()函數關閉文件。

四、檔案指標

在進行檔案操作時,需要使用指標來指示目前檔案讀寫的位置。文件指針通常稱為文件位置指示器,它由每個文件維護一個內部變量,用於記錄從文件開始位置到當前位置的位元組數。

C 提供了以下函數來操作檔案指標:

  1. tellg()函數:取得檔案讀取位置。
  2. tellp()函數:取得檔案寫入位置。
  3. seekg()函數:設定檔案讀取位置。
  4. seekp()函數:設定檔案寫入位置。

下面是一個簡單的例子,示範如何操作檔案指標:

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

int main()
{
    // 创建文件流对象并关联文件
    fstream file("example.txt", ios::in | ios::out);

    // 判断文件是否打开成功
    if (!file)
    {
        cout << "无法打开文件" << endl;
        return -1;
    }

    // 获取、设置文件指针位置
    file.seekp(6); // 将文件写位置设置为6
    file.put('X'); // 在文件位置6处写入字符'X'

    file.seekg(0); // 将文件读位置设置为0
    char ch = file.get(); // 从文件位置0读取一个字符
    cout << "第一个字符是:" << ch << endl;

    // 关闭文件
    file.close();
    return 0;
}
登入後複製

#在上述程式碼中,我們建立了一個名為file的檔案流對象,並將其關聯到檔案example.txt。在操作文件指標之前,需要先開啟文件。

在範例中,我們使用了seekp()函數將檔案指標位置設為6,然後使用put()函數在檔案位置6處寫入了字元'X'。接著,使用seekg()函數將檔案指針位置設為0,使用get()函數從檔案位置0讀取一個字符,並將其輸出。

五、總結

以上是使用C 進行文字檔案的輸入輸出的基本操作。在進行文件操作時,需要注意開啟和關閉文件的順序,以及文件指標位置的操作。文字檔案的讀寫操作、指標定位等操作都非常簡單,但需要牢記常用的函數和操作方式。

以上是在C++中使用文字檔進行輸入輸出的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用 Golang 安全地讀取和寫入檔案? 如何使用 Golang 安全地讀取和寫入檔案? Jun 06, 2024 pm 05:14 PM

在Go中安全地讀取和寫入檔案至關重要。指南包括:檢查檔案權限使用defer關閉檔案驗證檔案路徑使用上下文逾時遵循這些準則可確保資料的安全性和應用程式的健全性。

能否刪除gho檔? 能否刪除gho檔? Feb 19, 2024 am 11:30 AM

gho檔案是由NortonGhost軟體建立的鏡像文件,用於備份和還原作業系統和資料。在某些情況下,你可以刪除gho文件,但需要謹慎操作。本文將介紹gho檔案的功能、刪除gho檔案的注意事項,以及刪除gho檔案的方法。首先,我們來了解gho檔案的作用。 gho檔案是一種壓縮的系統和資料備份文件,它可以保存整個硬碟或特定分割區的鏡像。這種備份檔案通常用於緊急恢復

PHP8.0中的檔案操作:檔案監控 PHP8.0中的檔案操作:檔案監控 May 14, 2023 pm 02:21 PM

隨著Web應用程式的不斷發展,PHP已成為了Web開發中最重要的程式語言之一。作為一門靈活性極強的程式語言,PHP的每個版本都帶來了新的功能和最佳化,為了滿足不同的需求應用場景。在PHP8.0版本中,新增了一個非常實用的檔案操作功能,即檔案監控。這個功能非常適合那些需要監控和處理文件的應用程式場景,例如檔案備份、檔案同步、日誌監控等等。本文將帶大家

如何解決:Java檔案操作錯誤:檔案寫入失敗 如何解決:Java檔案操作錯誤:檔案寫入失敗 Aug 26, 2023 pm 09:13 PM

如何解決:Java檔案操作錯誤:檔案寫入失敗在Java程式設計中,常常會遇到檔案操作的需求,而檔案寫入是其中一個重要的功能。然而,有時候我們會遇到文件寫入失敗的錯誤,這可能導致程式無法正常運作。本文將介紹一些常見原因和解決方法,幫助您解決這類問題。路徑錯誤:一個常見的問題是檔案路徑錯誤。當我們嘗試將檔案寫入指定路徑時,如果路徑不存在或權限不足,都會導致檔案寫

Go程式設計技巧:刪除檔案中的內容 Go程式設計技巧:刪除檔案中的內容 Apr 04, 2024 am 10:06 AM

Go語言提供了兩種方法來清除檔案內容:使用io.Seek和io.Truncate,或使用ioutil.WriteFile。方法1涉及將遊標移到文件末尾,然後截斷文件,方法2涉及將空位元組數組寫入文件。實戰案例示範如何在Markdown文件中使用這兩種方法清除內容。

PHP檔案操作實例:讀取CSV文件 PHP檔案操作實例:讀取CSV文件 Jun 20, 2023 am 11:42 AM

PHP是一種廣泛應用於Web開發的流行程式語言。在Web應用程式中,文件操作是一個基本且常見的功能。本文將介紹如何使用PHP讀取CSV檔案並將其顯示在HTML表格中。 CSV是一種常見的文件格式,用於將表格資料​​匯入到電子表格軟體中(如Excel)。 csv檔案通常由許多行組成,每行由逗號分隔的值組成。第一行通常包含列頭,它們描述各列值的含義。這裡我們將使用PHP

學習Go語言中的檔案操作函數並實現檔案的加密壓縮上傳下載功能 學習Go語言中的檔案操作函數並實現檔案的加密壓縮上傳下載功能 Jul 29, 2023 pm 10:37 PM

學習Go語言中的檔案操作函數並實現檔案的加密壓縮上傳下載功能Go語言是一種開源的靜態類型程式語言,它以其高效能和簡潔的語法在開發領域廣受歡迎。在Go語言的標準函式庫中,提供了豐富的檔案操作函數,讓檔案讀寫、加密壓縮、上傳下載等作業變得非常簡單。本文將介紹如何使用Go語言中的檔案操作函數,實現對檔案進行加密壓縮、上傳下載的功能。首先,我們需要導入相關的三

如何使用C++在檔案指定位置插入內容? 如何使用C++在檔案指定位置插入內容? Jun 04, 2024 pm 03:34 PM

在C++中,使用ofstream類別在檔案指定位置插入內容:開啟檔案並定位插入點。使用

See all articles