Bạn có thể sử dụng con trỏ
FILE*
hoặc trong C++ bạn còn có thể sử dụng đối tượng fstream
để đọc ghi file (nhớ #include<fstream> trước khi khai báo đối tượng fstream
). Các ví dụ bên dưới mình sử dụng fstream
trong C++, về con trỏ FILE*
thì tương tự.Nguyên tắc chính là kiểm tra xem file đã được mở chưa. Sau đó tiến hành đọc file để ghi vào mảng, danh sách liên kết hoặc in ra màn hình, v.v... Cuối cùng là đóng file để kết thúc việc đọc file.
Tùy vào cấu trúc file văn bản mà ta xử lý khác nhau trong phần đọc file.
Dưới đây là ví dụ:
Mình có file D:\Test.txt có nội dung:
1 2 5 7 3 5 7 8 9
Yêu cầu đọc và xuất các số trên ra màn hình.
#include<fstream> #include<iostream> using namespace std; void ReadFile(char* path) { int n; fstream file(path, ios::in); //vừa khai báo vừa mở file if (!file.is_open()) //kiểm tra file đã được mở chưa cout<<"Could not open file!"<<endl; else { //xử lý đọc file ở đây while(!file.eof()) { file>>n; //đọc file vào biến n cout<<n<<" "; } file.close(); //đóng file khi hoàn tất } }
Ví dụ khác:
File D:\Test.txt có dòng đầu tiên là số lượng phần tử mảng, dòng thứ 2 là các phần tử
5
1 2 3 4 5
Yêu cầu đọc và lưu vào mảng.
#include<fstream> #include<iostream> using namespace std; void ReadFile(char* path, int *a, int &n) { fstream file(path, ios::in); //vừa khai báo vừa mở file if (!file.is_open()) //kiểm tra file đã được mở chưa cout<<"Could not open file!"<<endl; else { //xử lý đọc file ở đây file>>n; //đọc số đầu tiên for(int i = 0; i< n;i++) file>>a[i]; //đọc các số kế tiếp file.close(); //đóng file khi hoàn tất } }
anh cho em hỏi chỗ char* path thì path là để lm gì ạ?
Trả lờiXóapath là đường dẫn của file đó bạn
Xóa