• About
  • Advertise
  • Privacy & Policy
  • Contact
NQ NEWS
  • Kiến thức tổng hợp
    • Development
    • Deep Learning
    • Cloud Computing
    • Kiến thức bảo mật
    • Tin học văn phòng
  • Thủ thuật
    • Phần Mềm
    • Sửa lỗi máy tính
    • Bảo mật máy tính
    • Tăng tốc máy tính
    • Thủ thuật Wifi
  • Quản trị hệ thống
    • Giải pháp bảo mật
    • Mail Server
    • Mạng LAN – WAN
    • Máy chủ
    • Windows Server 2012
  • Tin tức
No Result
View All Result
  • Kiến thức tổng hợp
    • Development
    • Deep Learning
    • Cloud Computing
    • Kiến thức bảo mật
    • Tin học văn phòng
  • Thủ thuật
    • Phần Mềm
    • Sửa lỗi máy tính
    • Bảo mật máy tính
    • Tăng tốc máy tính
    • Thủ thuật Wifi
  • Quản trị hệ thống
    • Giải pháp bảo mật
    • Mail Server
    • Mạng LAN – WAN
    • Máy chủ
    • Windows Server 2012
  • Tin tức
No Result
View All Result
NQ NEWS
No Result
View All Result
Home Kiến thức tổng hợp Lập trình

Đọc/ghi File trong C++ | fstream trong C++

@admiz by @admiz
20/04/2022
in Lập trình
0
Doc Ghi File Trong C Fstream Trong C 640 1

Tới bây giờ, chúng ta đã sử dụng thư viện chuẩn iostream, cung cấp các phương thức cin và cout để đọc từ Standard Input và ghi tới Standard Output tương ứng.

Chương này sẽ hướng dẫn bạn cách đọc và ghi một file. Điều này cần một Thư viện chuẩn C++ khác là fstream, mà định nghĩa 3 kiểu dữ liệu mới:

Kiểu dữ liệuMiêu tả
ofstreamKiểu dữ liệu này biểu diễn Output File Stream và được sử dụng để tạo các file và để ghi thông tin tới các file đó
ifstreamKiểu dữ liệu này biểu diễn Input File Stream và được sử dụng để đọc thông tin từ các file
fstreamKiểu dữ liệu này nói chung biểu diễn File Stream, và có các khả năng của cả ofstream và ifstream, nghĩa là nó có thể tạo file, ghi thông tin tới file và đọc thông tin từ file

Để 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ở một File trong C++

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::appChế độ Append. Tất cả output tới file đó được phụ thêm vào cuối file đó
ios::ateMở một file cho outpur 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

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 );

Đóng một File trong C++

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();

Ghi File trong C++

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++.

Đọc một File 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++.

Ví dụ về Đọc và Ghi file 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:

Kết quả sau khi đọc và Ghi file trong C++
Kết quả sau khi đọc và Ghi file trong C++

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 đó.

Con trỏ vị trí File trong 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 );

Theo Tutorialspoint

Bài trước: Interface trong C++ (Lớp trừu tượng)

Bài tiếp: Xử lý ngoại lệ (Exception Handling) trong C++

  • Bài tập C++ có giải (code mẫu) về biến, kiểu dữ liệu và toán tử
  • Date và Time trong C++
  • Kiểu biến trong C/C++
  • Cú pháp C++ cơ bản
  • Kiểu dữ liệu trong C/C++
  • Bài tập C++ về IF ELSE
Post Views: 291
Tags: Con trỏ vị trí File trong C++Đọc một File trong C++Đọc và Ghi file trong C++Đóng một File trong C++Ghi File trong C++
Previous Post

Tổng hợp câu hỏi trắc nghiệm Pascal có đáp án

Next Post

Đồng bộ thư mục Dropbox với Windows 10

Related Posts

Dien Tich Tam Giac 640 1
Lập trình

Công thức tính diện tích tam giác: vuông, thường, cân, đều

26/12/2021
Huong Dan Cai Dat Node Js 640 1
Lập trình

Hướng dẫn cài đặt Node.js

26/12/2021
Cau Truc Du Lieu Hang Doi Queue 640 1
Lập trình

Cấu trúc dữ liệu hàng đợi (Queue)

26/12/2021
Hoc Css 640 8
Lập trình

Thanh điều hướng – Navigation Bar trong CSS

26/12/2021
Ms Sql Server Management Studio 640 3
Lập trình

Quản lý MS SQL Server bằng Management Studio

26/12/2021
Java Development Kit 1
Lập trình

Tải Java Development Kit 8-update-281

26/12/2021
Next Post
Dropbox Dong Bo 650 1

Đồng bộ thư mục Dropbox với Windows 10

Bài mới nhất

Top 13 Các Trang Web Dành Cho Máy Tính Pc Và Laptop Tốt Nhất Hiện Nay 612d254a46374.jpeg

Top 13 các trang web dành cho máy tính PC và laptop tốt nhất hiện nay

24/06/2025
Cách Xây Dựng Fanpage Từ Con Số 0 Phục Vụ Hoạt động Kinh Doanh Online 612d238a1301b.jpeg

Cách xây dựng fanpage từ con số 0 phục vụ hoạt động kinh doanh online

24/06/2025
Sass Là Gì? Lợi ích, Các Tính Năng Cơ Bản Và Cách Cài đặt Sass 612d20d9dfb07.jpeg

Sass là gì? Lợi ích, các tính năng cơ bản và cách cài đặt Sass

23/06/2025
Kinh Doanh Gì để Hút Bạc Năm 2021: 15+ ý Tưởng Bán Hàng độc đáo 612d20ceb51e2.jpeg

Kinh doanh gì để hút bạc năm 2021: 15+ ý tưởng bán hàng độc đáo

23/06/2025
Hành Vi Người Tiêu Dùng Là Gì Và Cách Nghiên Cứu Hành Vi Người Tiêu Dùng Hiệu Quả 612d1e986932d.jpeg

Hành vi người tiêu dùng là gì và cách nghiên cứu hành vi người tiêu dùng hiệu quả

22/06/2025

Danh mục

  • Android
  • Bảo mật máy tính
  • Bảo mật, Antivirus
  • Chuyện công nghệ
  • Deep Learning
  • Development
  • Dịch vụ công trực tuyến
  • Dịch vụ nhà mạng
  • Giải pháp bảo mật
  • Hệ thống
  • Hệ thống
  • iPhone
  • Kiến thức bảo mật
  • Kiến thức cơ bản phổ thông
  • Kiến thức Marketing căn bản
  • Kiến thức tổng hợp
  • Lập trình
  • Linux
  • Linux OS
  • macOS
  • Mail Server
  • Mạng LAN – WAN
  • Máy ảo
  • Máy chủ
  • ms excel
  • ms-powerpoint
  • Nền tảng điện toán đám mây
  • Phần cứng
  • Phần Mềm
  • Quản trị hệ thống
  • Raspberry Pi
  • Sửa lỗi máy tính
  • Tăng tốc máy tính
  • Thủ thuật
  • Thủ thuật SEO
  • Thủ thuật Wifi
  • Tiện ích hệ thống
  • Tin học văn phòng
  • Tin tức
  • Uncategorized
  • Ứng dụng
  • Website
  • Windows Server 2012

Thẻ

#app #chatbot #chatbot tự động #CRM #Kiến thức cơ bản #Techblog #Thiết kế website Android apple CPU Email Marketing Google Google Drive hacker HTML hàm python hàm python có sẵn hình nền hình nền máy tính học css học python học SQL ios iphone iphone 12 iPhone X macos Microsoft mssql MS SQL Server ngôn ngữ lập trình python Raspberry Pi Samsung smartphone SQL SQL Server tham số trong C thủ thuật windows 10 tài liệu python windows windows 10 YouTube điện thoại thông minh ứng dụng
  • About
  • Advertise
  • Privacy & Policy
  • Contact

© 2022 Pha Le Solution

No Result
View All Result
  • Home

© 2022 Pha Le Solution