Las 2 mejores opciones que tienes son: o utilizar siempre ifstream::get(), y si es \n sumas uno al contador, sin más, en un bucle; o utilizar getline y ver si la linea que lee está vacía. Ese código está bastante liado.
Además:
if (c!='\n');
else
{
}
Es equivalente a:
if (c=='\n'){
}
Y es más natural y legible esta última forma.