Mejor comprueba la propiedad "EndOfStream" del objeto StreamReader ya que nos indica si llegamos al EOF o final del archivo.
Perdona grrr pero no hables sin saber
En C todo es más primitivo, otra cosa sería C++ aun así comparándolo con C# es inferior en funcionalidad nativa o "por defecto" ya que el Framework te abstrae de muchos procesos que en C++ no están implementados (se arregla descargando libs de terceros o implementando dichas funcionalidades tu mismo). Ojo que programo más en C++ que en .NET (VB/C#) pero C# por defecto te trae una gran cantidad de librerías directas para usar 
Saludos.
Código (csharp) [Seleccionar]
while (!reader.EndOfStream) //Mientras no hayamos llegado al final del archivo
Console.WriteLine(reader.ReadLine()); //Imprimos una líneaCita de: Kaxperday en 17 Abril 2015, 20:47 PM
es horrible programar para archivos en C#, luego se quejan de C.
Perdona grrr pero no hables sin saber
En C todo es más primitivo, otra cosa sería C++ aun así comparándolo con C# es inferior en funcionalidad nativa o "por defecto" ya que el Framework te abstrae de muchos procesos que en C++ no están implementados (se arregla descargando libs de terceros o implementando dichas funcionalidades tu mismo). Ojo que programo más en C++ que en .NET (VB/C#) pero C# por defecto te trae una gran cantidad de librerías directas para usar 
Saludos.
Gracias por recomendar una la librería de OCR para .NET seguramente en un futuro la necesite. Sin embargo es de pago y no estoy yo para pagar licencias.