Chúng tôi biết rằng khi chèn \n
vào luồng tệp, trình tự cuối dòng thích hợp cho hệ thống sẽ được ghi vào tệp (ví dụ: \r\n
dành cho Windows). Có chèn một dòng cuối cùng trong một kết quả std::stringstream
trong chuỗi cuối dòng thích hợp của hệ thống được ghi vào chuỗi không? Ví dụ: Hệ thốngChèn dòng cuối vào một chuỗi
#include <sstream>
int main()
{
std::ostringstream oss;
oss << std::endl;
std::string endlineSequence = oss.str();
bool isWindows = enlineSequence == "\r\n";
bool isOldMac = endlineSequence == "\r";
bool isUnix = endlineSequence == "\n";
// Will this work???
}
Để tiết kiệm thời gian, bạn có thể thực hiện và xem tất cả 'bool' trong chương trình của bạn là 'true' hay không ... rất có thể' isWindows' và 'isMac' sẽ đánh giá là' false'. –
@Aditya: Tôi phải thử trên từng nền tảng. Không phải ai cũng có hộp Windows, Mac và Unix theo ý của họ. :-) –
@Emile: không, bạn chỉ cần dùng thử trong Windows. Bởi vì nếu bạn viết '\ n' và nhận' \ r \ n', nó sẽ chuyển thành dòng mới; và nếu bạn nhận được '\ n' thì không. Nó không đáng chú ý trong Linux hoặc MacOS X, mặc dù. –