Lập trình C++

Các thao tác cơ bản với file trong C++ cực chi tiết

Thao tác với file là việc không thể thiếu đối với bất kì lập trình viên nào. Ví vậy, để giúp các bạn bắt đầu làm quen thao tác với file trong C++, trong bài viết này Isinhvien sẽ giới thiệu đến các bạn cách đọc ghi file trong C++ siêu cơ bản và cực kì dễ hiểu. Cùng bắt đầu ngay bây giờ nhé!

Các thao tác cơ bản với file trong C++ cực chi tiết 4

Để sử dụng file, đầu tiên ta cần khai báo thư viện fstream với cú pháp #include<fstream>. Khi xử lí file trong C++, ta có 3 classs:

  • ifstream: là class để đọc dữ liệu đầu vào từ file
  • ofstream: là class để ghi dữ liệu vào
  • fstream: là class để đọc hoặc ghi dữ liệu, ta có thể thay thế ifstream và ofstream bằng từ khóa fstream.

Mở một file trong C++

Đầu tiên, để làm việc với file thì ta cần phải mở ra lên trước đã. Ta có thể sử dụng ifstream để mở file với mục đích đọc, ofstream để mở file với mục đích ghi hoặc fstream nếu bạn vừa muốn đọc, vừa muốn ghi. Ta sẽ dùng hàm open (là một thành viên của các đối tượng fstream, ifstream ofstream trong C++) để mở file với cú pháp như sau:


open(const char *ten_file, ios::che_do);

Với tham số đầu tiên xác định tên và vị trí của file được mở và tham số thứ hai của hàm định nghĩa chế độ mà file nên được mở. Các chế độ được miêu tả trong bảng sau:

Chế độMiêu tả
ios::appChế độ Append. Tất cả output tới file đó được phụ thêm vào cuối file đó
ios::ateMở một file cho output và di chuyển điều khiển read/write tới cuối của file
ios::inMở một file để đọc
ios::outMở một file để ghi
ios::truncNếu file này đã tồn tại, nội dung của nó sẽ được cắt (truncate) trước khi mở file
Các chế độ khi mở file

Ta cũng có thể cùng lúc sử dụng hai hoặc nhiều chế độ khi mở file.

Ví dụ:

fstream Isv;
Isv.open("file.txt", ios::out | ios::in );
// Mở file vừa đọc vừa ghi

Đóng file trong C++

Khi ta không cần làm việc với file nữa, thì ta cần đóng chúng lại với hàm close(), một thành viên của các đối tượng fstream, ifstream và ofstream trong C++:


Ví dụ:

fstream Isv;
Isv.open("file.txt", ios::out | ios::in );
....
....
Isv.close(); // Đóng file Isv

Đọc và ghi file trong C++

Bình thường khi chúng ta lấy dữ liệu từ bàn phím ta sẽ sử dụng câu lệnh cin >> và in dữ liệu ra màn hình console ta dùng cout <<, và tương tự với đọc dữ liệu từ file và ghi dữ liệu vào file ta chỉ cần thay cin thành tên file cần đọc dữ liệu, và thay cout thành tên file cần ghi dữ liệu vào. Nếu chỉ dùng file >> str; thì ta chỉ đọc được chuỗi cho tới khi nó gặp dấu cách. Muốn lấy dữ liệu lấy được cả dấu cách ta dùng hàm getline (file,str);

Ví dụ:

Giả sử Isinhvien đang có một file trống output và một file input với nội dung ‘Isinhvien!!’ như hình dưới.

Các thao tác cơ bản với file trong C++ cực chi tiết 5
File input và output

Chương trình dưới đây sẽ in dữ liệu ở file input và ghi ‘Chuc cac ban thanh cong‘ vào file output.

#include <iostream>
#include <fstream>
using namespace std;
int main(){
    fstream input("input.txt");
    fstream output;
    output.open("output.txt", ios::out );
    string str;
    input>>str; // lấy giá trị biến str từ file input
    cout<<str; // in str ra màn hình console
    output<<"Chuc cac ban thanh cong!!"; 
              //in vào file output
    input.close(); //đóng file input
    output.close(); //đóng file output
    return 0;
}

Kết quả trên màn hình:


Isinhvien!!

Kết quả trên 2 file

Các thao tác cơ bản với file trong C++ cực chi tiết 6
File input và output sau khi thực thi chương trình

Hi vọng sau bài viết này thì các bạn sẽ thành thạo hơn về các thao tác đóng, mở và đọc ghi file trong C++ nhé! Nếu thấy bài viết này của Isinhvien hay và bổ ích thì hãy chia sẻ nó đến với bạn bè của mình để ủng hộ cho Isinhvien và giúp Isinhvien ngày càng phát triển hơn nhé! Chúc các bạn thành công!

Bài viết khác liên quan đến thao tác file c++

Mới nhất cùng chuyên mục

Back to top button
Close