我們知道,在文件流中插入\n
時,系統的適當行尾序列將寫入文件(例如Windows的\r\n
)。在std::stringstream
中插入一個結束符會導致系統相應的行尾序列被寫入字符串嗎?例如:將端行插入字符串流
#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???
}
爲了節省您的時間,您可以執行並查看程序中的所有「布爾」是否爲「true」或非最可能的「isWindows」和「isMac」都將評估爲「false」。 –
@Aditya:我不得不在每個平臺上嘗試。並非每個人都可以使用Windows,Mac和Unix機箱。 :-) –
@Emile:不,你只需要在Windows中試用它。因爲如果你編寫'\ n'並得到'\ r \ n',它會將其翻譯爲本地換行符;如果你得到了'\ n'則它不會。不過,它在Linux或MacOS X中並不明顯。在Windows和Linux計算機上均爲 –