Menggunakan fail teks untuk input dan output dalam C++

PHPz
Lepaskan: 2023-08-22 14:49:49
asal
2775 orang telah melayarinya

Menggunakan fail teks untuk input dan output dalam C++

Dalam C++, pemprosesan fail teks adalah sangat penting, kerana kebanyakan program perlu melakukan input dan output dengan fail luaran, seperti membaca fail data yang disimpan pada cakera atau menyimpan data dalam program ke dalam fail. Oleh itu, artikel ini akan memperkenalkan cara menggunakan fail teks untuk input dan output dalam C++.

1. Membuka dan menutup fail teks

Dalam C++, anda perlu menggunakan objek kelas aliran fail (fstream) untuk membaca dan menulis fail. Sebelum menggunakan fail, anda perlu mencipta objek aliran fail dan mengaitkannya dengan fail. Pembina objek aliran fail boleh menerima nama fail dan kaedah pembukaan sebagai parameter. Terdapat tiga kaedah pembukaan fail biasa dalam C++:

  1. ios::in: Buka fail dalam mod baca sahaja.
  2. ios::out: Buka fail dalam mod tulis sahaja.
  3. ios::app: Buka fail dalam mod tambah.

Berikut ialah contoh mudah yang menunjukkan cara membuka fail:

#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;
}
Salin selepas log masuk

Dalam kod di atas, objek strim fail bernama fail dicipta melalui pembina kelas fstream dan dikaitkan dengan fail example.txt . Apabila fail dibuka, kaedah digunakan yang boleh dibaca dan boleh ditulis. Dalam erti kata lain, apabila anda perlu membaca fail, anda perlu menggunakan pilihan ios::in apabila anda perlu menulis fail, anda perlu menggunakan pilihan ios::out apabila anda perlu menambah kandungan di hujung fail, anda perlu menggunakan ios ::appoptions. Untuk kemudahan, kedua-dua kaedah boleh dibaca dan boleh ditulis digunakan di sini.

Selepas operasi fail selesai, fail perlu ditutup. Ini boleh dicapai melalui fungsi close() objek aliran fail.

2. Membaca data daripada fail

Selepas membuka fail teks, kita boleh menggunakan objek aliran input fail (ifstream) untuk membaca data daripada fail teks. C++ menyediakan pelbagai kaedah untuk membaca data daripada fail, termasuk yang berikut:

  1. getline() fungsi: Membaca baris data teks daripada fail.
  2. Operator: Baca perkataan atau nilai daripada fail. Fungsi
  3. read(): Baca data panjang yang ditentukan daripada fail. Fungsi
  4. get(): Baca aksara daripada fail. Fungsi
  5. peek(): Prabaca aksara seterusnya tetapi jangan keluarkannya daripada fail. Fungsi
  6. ignore(): Abaikan bilangan aksara yang ditentukan dalam fail.

Berikut ialah contoh mudah yang menunjukkan cara membaca data daripada fail:

#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;
}
Salin selepas log masuk

Dalam kod di atas, kami mencipta objek aliran fail input bernama fail dan mengaitkannya dengan fail example.txt. Dalam gelung sementara, kandungan fail dibaca baris demi baris dengan memanggil fungsi getline() dan setiap baris data disimpan dalam pembolehubah rentetan str. Akhirnya, kandungan yang dibaca dikeluarkan melalui cout.

3. Tulis data ke fail

Dalam C++, anda boleh menggunakan objek aliran keluaran fail (ofstream) untuk menulis data ke fail teks. Fungsi penulisan yang biasa digunakan termasuk yang berikut:

  1. <
  2. put(): Tulis aksara.
  3. write() fungsi: Tulis data dengan panjang yang ditentukan.

Berikut ialah contoh mudah yang menunjukkan cara menulis data ke fail:

#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;
}
Salin selepas log masuk

Dalam kod di atas, kami mencipta objek aliran fail output bernama fail dan mengaitkannya dengan fail example.txt. Dalam gelung for, data ditulis pada fail melalui operator << Setiap gelung menulis satu baris data teks, dan akhirnya fail ditutup melalui fungsi close().

4. Penunjuk fail

Apabila menjalankan operasi fail, anda perlu menggunakan penunjuk untuk menunjukkan lokasi baca dan tulis fail semasa. Penunjuk fail, sering dipanggil penunjuk kedudukan fail, ialah pembolehubah dalaman yang dikekalkan oleh setiap fail yang merekodkan bilangan bait dari permulaan fail ke kedudukan semasa.

C++ menyediakan fungsi berikut untuk mengendalikan penunjuk fail:

  1. tellg() fungsi: Dapatkan kedudukan bacaan fail. Fungsi
  2. telp(): Dapatkan kedudukan penulisan fail. Fungsi
  3. seekg(): Tetapkan kedudukan bacaan fail. Fungsi
  4. seekp(): Tetapkan lokasi penulisan fail.

Berikut ialah contoh mudah yang menunjukkan cara memanipulasi penuding fail:

#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;
}
Salin selepas log masuk

Dalam kod di atas, kami mencipta objek aliran fail bernama fail dan mengaitkannya dengan fail example.txt. Sebelum memanipulasi penuding fail, fail perlu dibuka.

Dalam contoh, kami menggunakan fungsi seekp() untuk menetapkan kedudukan penuding fail kepada 6, dan kemudian menggunakan fungsi put() untuk menulis aksara 'X' pada kedudukan fail 6. Seterusnya, gunakan fungsi seekg() untuk menetapkan kedudukan penuding fail kepada 0, gunakan fungsi get() untuk membaca aksara daripada kedudukan fail 0 dan mengeluarkannya.

5. Ringkasan

Di atas adalah operasi asas input dan output fail teks menggunakan C++. Semasa menjalankan operasi fail, anda perlu memberi perhatian kepada susunan fail dibuka dan ditutup, serta operasi kedudukan penunjuk fail. Operasi membaca dan menulis fail teks, kedudukan penunjuk dan operasi lain adalah sangat mudah, tetapi anda perlu mengingati fungsi dan operasi yang biasa digunakan.

Atas ialah kandungan terperinci Menggunakan fail teks untuk input dan output dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!