Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Đọc file C++ không khó. Dưới đây là chi tiết những điều bạn cần biết về cách đọc ghi file C++.
Đối tượng cơ bản lưu trữ dữ liệu liên quan của người dùng được gọi là tệp. Các tệp có thể có nhiều loại được mô tả bằng phần mở rộng của chúng. Ví dụ: .txt (tệp văn bản), .cpp (tệp nguồn C++), .exe (tệp thực thi), .pdf (tệp tài liệu di động) và nhiều tệp khác.
Xử lý file là tên gọi của tác vụ thao tác tập tin lưu trữ dữ liệu liên quan bằng một ngôn ngữ lập trình, cụ thể ở đây là C++. Điều này cho phép bạn lưu trữ dữ liệu trong kho lưu trữ vĩnh viên, ngay cả sau khi chương trình này thực hiện xử lý file cho cùng một kết thúc thực thi của nó. C++ cung cấp thư viện fstream để xử lý file.
Ở bài viết này, chúng ta sẽ thảo luận về các class có thể triển khai hoạt động I/O trên tập tin. Để lấy input từ bàn phím và in dữ liệu trên console. Có thể bạn đang dùng cin (character input stream) và cout (character output stream) của class istream và ostream. File stream cũng tương tự như vậy, chỉ khác là console được thay thế bằng một tập tin.
Thư viện fstream cung cấp cho lập trình viên C++ 3 class hoạt động cùng với file. Những class này bao gồm:
Để thực hiện tiến trình xử lý file trong C++, bạn bao các header file là <iostream> và <fstream> trong source file của chương trình C++ của bạn.
Một file phải được mở trước khi bạn có thể đọc thông tin từ nó hoặc ghi thông tin tới nó. Hoặc đối tượng ofstream hoặc đối tượng fstream có thể được sử dụng để mở một file với mục đích viết hoặc đối tượng ifstream được sử dụng để mở file chỉ với mục đích đọc.
Dưới đây là cú pháp chuẩn cho hàm open(), là một thành viên của các đối tượng fstream, ifstream và ofstream trong C++:
void open(const char *ten_file, ios::che_do);
Tại đây, 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 thành viên open() định nghĩa chế độ mà file nên được mở.
| Chế độ | Miêu tả |
|---|---|
| ios::app | Chế độ Append. Tất cả output tới file đó được phụ thêm vào cuối file đó |
| ios::ate | Mở một file cho outpur và di chuyển điều khiển read/write tới cuối của file |
| ios::in | Mở một file để đọc |
| ios::out | Mở một file để ghi |
| ios::trunc | Nếu file này đã tồn tại, nội dung của nó sẽ được cắt (truncate) trước khi mở file |
Bạn có thể kết hợp hai hoặc nhiều giá trị này bằng việc hoặc chúng cùng với nhau (sử dụng (|). Ví dụ, nếu bạn muốn mở một file trong chế độ ghi và muốn cắt (truncate) nó trong trường hợp nó đã tồn tại, bạn theo cú pháp sau:
ofstream outfile;
outfile.open("file.dat", ios::out | ios::trunc );
Theo cách tương tự, bạn có thể mở một file với mục đích đọc và ghi như sau:
fstream QTM;
QTM.open("file.dat", ios::out | ios::in );
Khi một chương trình C++ kết thúc, nó tự động đóng tất cả Stream, giải phóng tất cả bộ nhớ đã cấp phát và đóng tất cả file đã mở. Nhưng nó là bài thực hành tốt cho một lập trình viên nên đóng tất cả file đã mở trước khi kết thúc chương trình.
Dưới đây là cú pháp chung cho hàm close() trong C++, là một thành viên của các đối tượng fstream, ifstream và ofstream trong C++:
void close();
Trong khi lập trình C++, bạn ghi thông tin tới một file từ chương trình của bạn bởi sử dụng toán tử chèn luồng là (<<), giống như khi bạn sử dụng toán tử đó để tạo thông tin đầu ra tới màn hình. Chỉ có một điểm khác nhau là bạn sử dụng một đối tượng ofstream hoặc fstream trong C++ thay cho đối tượng cout trong C++.
Bạn đọc thông tin từ một file trong chương trình C++ của bạn bởi sử dụng toán tử trích luồng là (>>), giống như bạn sử dụng toán tử đó để nhập thông tin đầu vào từ bàn phím. Điểm khác nhau là bạn sử dụng một đối tượng ifstream hoặc fstream thay vì sử dụng đối tượng cin trong C++.
Chương trình C++ sau mở một file trong chế độ đọc và ghi. Sau khi ghi thông tin được nhập vào bởi người sử dụng tới một file là qtm.dat, chương trình đọc thông tin từ file đó và tạo kết quả đầu ra trên màn hình:
#include <fstream>
#include <iostream>
using namespace std;
int main ()
{
char data[100]; // mo mot file trong che do write.
ofstream outfile;
outfile.open("qtm.dat");
cout << "Ghi du lieu toi file!" << endl;
cout << "Nhap ten cua ban: ";
cin.getline(data, 100);
// ghi du lieu da nhap vao trong file.
outfile << data << endl;
cout << "Nhap tuoi cua ban: ";
cin >> data;
cin.ignore();
// ghi du lieu da nhap vao trong file.
outfile << data << endl;
// dong file da mo.
outfile.close();
//mo mot file trong che do read.
ifstream infile;
infile.open("qtm.dat");
cout << "\n===========================\n" ;
cout << "Doc du lieu co trong file!" << endl; infile >> data;
// ghi du lieu tren man hinh.
cout << data << endl;
// tiep tuc doc va hien thi du lieu.
infile >> data; cout << data << endl;
// dong file da mo.
infile.close();
return 0;
}
Biên dịch và chạy chương trình C++ trên sẽ cho kết quả sau:

Ví dụ trên sử dụng các hàm bổ sung từ đối tượng cin, như hàm getline() để đọc dòng từ bên ngoài và hàm ignore() để bỏ qua các ký tự phụ bên trái lệnh read trước đó.
Cả hai đối tượng istream và ostream đều cung cấp các hàm thành viên để xác định lại vị trí của con trỏ vị trí file (file-position pointer). Các hàm thành viên này là seekg (viết tắt của seek get) cho istream và seekp (viết tắt của seek put) cho ostream trong C++.
Tham số cho seekg và seekp thương là một long int. Tham số thứ hai có thể được xác định để chỉ dẫn hướng tìm kiếm. Hướng tìm kiếm có thể là ios::beg (mặc định) để xác định vị trí liên quan tới phần bắt đầu của một Stream, là ios::cur để xác định vị trí liên quan tới vị trí hiện tại trong một Stream hoặc là ios::end để xác định vị trí liên quan tới phần kết thúc của một Stream trong C++.
Con trỏ vị trí file là một giá trị integer mà xác định vị trí trong file, tính toán là số byte từ vị trí bắt đầu của file đó. Dưới đây là một số ví dụ để xác định vị trí của con trỏ vị trí file trong C++:
// xac dinh vi tri byte thu n cua doi tuong file doi_tuong_file.seekg( n ); // xac dinh vi tri n byte ve sau cua doi tuong file doi_tuong_file.seekg( n, ios::cur ); // xac dinh vi tri n byte bat dau tu cuoi cua doi tuong file doi_tuong_file.seekg( n, ios::end ); // xac dinh vi tri tai cuoi doi tuong file doi_tuong_file.seekg( 0, ios::end );
Tác giả: Theo Tutorialspoint
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Xây dựng một workflow AI thực tế từ đầu đến cuối
Cách xuất nội dung ChatGPT sang Google Docs không mất định dạng
Đánh giá và cải thiện thói quen sử dụng AI
Perplexity AI là gì?
Cách kết nối Google Drive với ChatGPT
Meitu VIP vs Meitu SVIP: Nên lựa chọn gói chỉnh ảnh nào?
Tại sao Claude for Teachers lại tạo nên sự khác biệt?
Hướng dẫn dùng Higgsfield tạo video trên ChatGPT
Cách dùng NotebookLM trong Google Docs
Hướng dẫn dùng Dola AI tạo bảng dữ liệu từ câu lệnh
Chỉnh sửa kế hoạch giảng dạy do Claude for Teachers tạo dưới góc độ một biên tập viên
TOP công cụ AI tạo biểu mẫu và khảo sát
Chỉnh sửa nội dung giáo án do Claude for Teachers tạo
Tìm hiểu về các tính năng Home, Code và Autopilot mới trong Copilot
Hướng dẫn đăng ký tài khoản quảng cáo ChatGPT
Microsoft Frontier: Chương trình cho phép bạn trải nghiệm sớm các tính năng AI trước khi chúng được phát hành rộng rãi
OpenClaw là gì?
Hướng dẫn dùng Lovable AI trên ChatGPT tạo website cực nhanh
Học kỹ năng Mô tả: Hoàn thành prompt AI đầu tiên có thể sử dụng được
Tự tạo ứng dụng quản lý công việc trên Gemini rất đơn giản
Cách lập trình chuyên nghiệp hơn, dễ dàng hơn với tính năng Tệp trên Grok
Hướng dẫn cài đặt và sử dụng n8n trên Windows 11
Công thức tính diện tích hình Elip
Hướng dẫn ngắt kết nối ứng dụng trên ChatGPT
Hướng dẫn tạo đoạn hội thoại cho topic trên Twee
8 ứng dụng Microsoft Store miễn phí giúp Windows tốt hơ
Đừng chia sẻ ảnh cho đến khi bạn chạy kiểm tra siêu dữ liệu này!
6 cách mở Computer/System Properties trong Windows 10
Bức tranh tổng quan về hỗ trợ khách hàng tích hợp AI
Cách sửa lỗi There Are Currently No Power Options Available Windows