c ++ getline lee el archivo completo

Estoy usando std :: getline () para leer un archivo de texto, línea por línea. Sin embargo, la primera llamada a getline está leyendo el archivo completo. También he intentado especificar el delimitador como '\ n' explícitamente. Alguna idea de por qué esto esta pasando?

Mi código:

std::ifstream serialIn;
...
serialIn.open(argv[3]);
...
std::string tmpStr;
std::getline(serialIn, tmpStr, '\n');
// All 570 lines in the file is in tmpStr!
...
std::string serialLine;
std::getline(serialIn, serialLine);
// serialLine == "" here

Estoy usando Visual Studio 2008. El archivo de texto tiene 570 líneas (lo estoy viendo en Notepad ++ fwiw).

Editar: Resolví este problema utilizando Notepad ++ para convertir los finales de línea de mi archivo de texto de entrada en los finales de línea de "Windows". El archivo se escribió con '\ n' al final de cada línea, utilizando el código c ++. ¿Por qué getline () requiere los finales de línea de Windows (\ r \ n)? ¿Esto tiene que ver con el ancho de caracteres o la implementación de Microsoft?

Respuestas a la pregunta(2)

Su respuesta a la pregunta