30/09/2018, 19:00

Hỏi bài tập về file

Mình có file matran.txt có nội dung thế này:

4 6 7
3 6 8
2 4 8

Bây giờ mình muốn đọc file đó và gán các phần tử đó cho 1 mảng hai chiều nhưng do mình không biết số dòng và số cột nên mình không biết phải làm sao?

Vu Van Chung viết 21:06 ngày 30/09/2018

Nếu không biết thì theo mình nghĩ bạn nên thử while (!EOF), đọc theo dòng ấy

Interns viết 21:08 ngày 30/09/2018

Ai nói với bạn là EOF đọc theo dòng

... viết 21:10 ngày 30/09/2018

Nếu không biết trước số dòng hay số cột thì chắc là đọc vào kiểu

std::vector< std::vector< int > >

là đơn giản nhất.

Interns viết 21:11 ngày 30/09/2018

Em đang dùng C và tính dùng con trỏ mà không biết phải làm sao?

... viết 21:05 ngày 30/09/2018

Con trỏ thì chắc là dùng mảng con trỏ.

int *data[100]; //cứ tạm cho là 100 con trỏ đi.

Đọc dữ liệu 1 dòng vào kiểu mảng kí tự, đưa vào hàm xử lý để chuyển thành mảng số nguyên rồi trả về địa chỉ của mảng số nguyên đó

int* convertStringToArray(const char* line);

Đọc được dòng nào thì mình cho con trỏ tiếp theo trong mảng data trỏ vào nó.
Ví dụ:

data[1] = convertStringToArray(line);

Còn nếu muốn không biết trước số con trỏ cần sử dụng để lưu mỗi dòng nữa luôn thì chắc là tự tạo một struct giống với vector trong C++ vậy.

Có một số cách để đọc file từng dòng vào mảng kí tự như trong topic này mình có nói qua:

Mình tìm thấy nhiều cách đọc file bằng C++ vào std::string khác nhau, post tạm 1 cách đã, có thời gian post dần thêm. Cách đầu tiên là đọc file bằng istreambuf_iterator. Ví dụ cụ thể: File text.txt lưu với nội dung như sau: nguyen chiem minh vu 01216558383 (EOF) Và đọc file như vầy: #include <iostream> #include <fstream> using namespace std; int main() { ifstream textfile("text.txt"); string s1; //store a line of file for(istreambuf_iterator<char,char_traits<char> > i…

Chuyển mảng kí tự thành mảng dữ liệu như thế nào thì bạn tự xử lý tiếp vậy.

Bài liên quan
0