// leercads.cpp - Leer cadenas en un fichero
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
  string nombreFichero;

  cout << "Fichero: "; getline(cin, nombreFichero);
  // Abrir el fichero para leer y asociarle un búfer
  fstream ifs(nombreFichero.c_str(), ios::in);
  if (!ifs)
  {
    cerr << "Error: no se puede abrir el fichero\n";
    return -1;
  }

  // Leer datos del fichero
  const int N = 80;
  char linea[N];
  int ncars = 0;
  do
  {
    ifs.getline(linea, N, '\n'); // leer una línea del fichero
    if (ifs.eof()) break;
    cout << linea;               // mostrar la línea
    if ((ncars = ifs.gcount()) == N-1) // se activo failbit
      ifs.clear();
    else // se encontró el delimitador
      cout << endl;
  }
  while (true);
  
  if (!ifs.eof() && ifs.fail())
    cerr << "Error al leer del fichero\n";
  ifs.clear();
}

