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
write
chỉ 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 ạ