Sabemos que al insertar \n
en una secuencia de archivos, la secuencia de fin de línea apropiada para el sistema se escribirá en el archivo (por ejemplo, \r\n
para Windows). ¿La inserción de una línea final en un std::stringstream
da como resultado que la secuencia de fin de línea apropiada para el sistema se escriba en la cadena? Por ejemplo:Inserción de línea final en un 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???
}
Para ahorrar tiempo, puede ejecutar y ver si todos los 'bool's en su programa son 'verdaderos' o no ... lo más probable es' isWindows' y 'isMac' se evaluará a' false'. –
@Aditya: Tendría que probar en cada plataforma. No todos tienen un recuadro de Windows, Mac y Unix a su disposición. :-) –
@Emile: no, solo tiene que probarlo en Windows. Porque si escribe '\ n' y obtiene' \ r \ n', hace la traducción a newline nativa; y si obtienes '\ n' no es así. Sin embargo, no se nota en Linux o MacOS X. –