cảm ơn vì tất cả những người đã trả lời tôi: tôi bây giờ thử nghiệm một số mã tùy thuộc vào những gì tôi đã được trả lời và đã đưa ra bản tóm tắt này:
sử dụng ofstream: ios :: ra là mặc định thậm chí nếu không có gì được chỉ định, nhưng nếu bạn chỉ sử dụng ios :: in with ofstream, không có lỗi biên dịch (trừ khi bạn sử dụng read() hoặc >> hoặc một số đối tượng ifstream) nhưng không có tệp nào được ghi.
sử dụng ifstream: ios :: in là mặc định ngay cả khi không có gì được xác định, nhưng nếu bạn chỉ sử dụng ios :: ra với ifstream, không có lỗi biên dịch (trừ khi bạn sử dụng write() hoặc < < hoặc một số đối tượng ofstream) nhưng bạn không thể đọc bất kỳ thông tin nào từ tệp.
sử dụng fstream: không có giá trị mặc định, bạn phải xác định rõ bạn sẽ làm gì. Nếu không, không có lỗi biên dịch nhưng bạn không nhận được những gì bạn muốn đơn giản.
đối với câu hỏi gốc, cả hai đều hoạt động giống nhau!
Nguồn
2010-02-09 18:36:32
no nếu bạn sử dụng kênh fstream, bạn có thể viết ios :: out cũng như ios :: và bạn vẫn có thể viết và đọc từ tệp .. vì vậy không phải lúc nào nó cũng viết như vậy không viết ios :: out? –
@Imengineer: Tôi phải kiểm tra để chắc chắn, nhưng nếu bộ nhớ phục vụ một fstream được mở cho cả đầu vào và đầu ra theo mặc định, nhưng nếu bạn chỉ định ios :: out, nó chỉ được mở cho đầu ra, và nếu bạn chỉ định ios :: in, nó chỉ được mở cho đầu vào. Đó là đi từ bộ nhớ mặc dù, để nó chắc chắn không được bảo đảm. –