30/09/2018, 16:53
Fstream operator<< và write khác nhau chỗ nào?
Khi sử dụng thế này
file.open("data.bin", ios::binary | ios::out);
string temp = "test string";
file << temp;
thì khi mở file ra thì giống như mở một tập file văn bản không ?
Ví dụ 2 :
file.open("data.bin", ios::binary | ios::out);
string temp = "test string";
file.write(temp.c_str(), temp.length());
thì 2 kiểu này khác nhau như thế nào ?
Bài liên quan





Trong trường hợp ví dụ ở trên thì giống nhau.
Operator<<nhận vào nhiều kiểu dữ liệu khác nhau. Vì đây là overload operator nên ta có thể đẩy vào nhiều thứ. Chi tiếtcủa nó có thể xem ở đâyNgược lại
writechỉ hỗ trợ chèn vào kiểuconst char *mà thôi. Đó là lý do tại sao phải viếttemp.c_str(). Chi tiết của nó có thể xem ở đâyCó một điều em thấy lạ là khi mở file tạo bởi ví dụ 1 thì phần mềm mở dạng text như bình thường
. Còn ở ví dụ 2 thì mở file ra ở dạng hex.
Ví dụ:
Em nói đúng rồi, đó là bởi vì hàm
writeđơn thuần là hàm copy một cục dữ liệu vào file. Nên dữ liệu ghi vào là dữ liệu thô.Đối với
operator<<thì dữ liệu có định dạngHướng dẫn post bài: Đối với ảnh, em chỉ cần post link là tự hiện ra ảnh thôi à.
Em hiểu thêm rất nhiều rồi ạ