
Nguyên bản được gửi bởi
kyoteiosio
Em hiểu rồi ạ, em xin cảm ơn rất nhiều
Câu trả lởi ở bài #4 không giống với cách hiểu củab tôi.
Trong code ở bài #2:
Code:
ifstream infile;
infile.open(duongdan);
int n;
infile >> n;
infile là một đối tượng của lớp ifstream
>> là toán tử "trích xuất" của lớp này. Toán tử này gồm một nhóm hàm chồng. Trong đó kiểu của vế thứ hai xác định hàm mà nó gọi để xử lý chuỗi.
Theo code trên, kiểu của n là int cho nên nó sẽ gọi hàm này:
istream& operator>> (int& val);
Code của hàm này chuyển text mà nó trích xuất được trong file (file của bạn là file text) thành số nguyên. Ví dụ trong file chứa "123" (tx) thì nó chuyển thành 123 (int).
Chú thích:

Nguyên bản được gửi bởi
kyoteiosio
...mình nhập dữ liệu từ file như vậy thì cái dữ liệu đó sẽ là kiểu ký tự đúng không ạ?...
Theo đúng nguyên tắc LT HĐT, bạn không cần biết đối tượng infile đọc ra chuỗi hay số. Lớp ifstream hứa là nó đọc file text cho bạn; và cũng trưng ra một loạt toán tử lẫn hàm và hàm bạn để giúp bạn lấy dữ liệu đúng theo kiểu mong muốn.
Ví dụ ở code trên, bạn đặt kiểu của n là string thay vì int thì nó sẽ gọi hàm này:
ifstream& operator>> (istream& is, unsigned char* s); // thực ra là hàm bạn, không phải hàm riêng của lớp.
Và ví dụ trogn file chứa "123" thì nó trả về cho bạn chuỗi "123".