Đọc nhiều file trong C++

Giả sử mình có một hàm như sau:

void readFIle(const char* fileName);

Bây giờ nếu chỉ đọc 1 file thì làm như vầy:

readFile(“apple.txt”);

Nhưng bây giờ nếu mình có 100 file như vậy (apple1.txt, apple2.txt, … apple100.txt) thì làm sao để đọc toàn bộ nó mà không phải viết tay từng cái như vầy:

readFile(“apple1.txt”);
readFile(“apple2.txt”);
…
readFile(“apple100.txt”);

Một cách mình nghĩ ra là tạo một hàm trả về tên của các file đó:

const char* createName(const char* name, int value)
{
//magic here
}

rồi cho vào vòng lặp for để chạy.
Nghe có vẻ brute force quá nên cho mình hỏi có cách khác để giải quyết vấn đề này không? Vấn đề của cách trên là giả sử đâu đó có file tên orange.txt, banana.txt thì những file đó sẽ bị bỏ sót.

PS1: Một vần đề nữa là mỗi khi đọc xong 1 file, mình cần thời gian để xử lý nó trước khi đọc file kế nên đọc 1 lượt từ 1-100 cũng không được.

  1. Tên file có quy tắc rồi thì bạn for để tạo ra tên file, rồi đọc luôn
  2. Đưa all vào 1 thư mục rồi duyệt thư lần lượt file trong thư mục đó, cách này xem link này nhé:
5 Likes

Mình mới thên cái PS. Xin lội bạn.

PS: Một vần đề nữa là mỗi khi đọc xong 1 file, mình cần thời gian để xử lý nó trước khi đọc file kế nên đọc 1 lượt từ 1-100 cũng không được.

Có lẽ bạn cần lấy danh sách file trong thư mục.

5 Likes

Có nhiều loại file trong đó như .mp3, .exe, .txt nhưng mình chỉ muốn đọc .txt

Có gì sai đâu nhỉ, thì bạn cứ xử lý xong đi rồi sang file tiếp

for i from 1 to 100:
   // tạo đường dẫn
   // đọc file
   // xử lý
end 

Bạn hỏi không rõ nhé, vote dùng cách 2 (thêm cái if mà lọc file cần đọc thôi).

5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?