Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/01/2016, 08:23
Avatar de xKuZz
xKuZz
 
Fecha de Ingreso: febrero-2015
Ubicación: nullptr
Mensajes: 183
Antigüedad: 9 años, 2 meses
Puntos: 27
Respuesta: Problemas usando getline() con archivos (fstream)?

Para próximas dudas utiliza la etiqueta Highligth apropiada de C++ para resaltar el código.

Para leer una cadena hasta el carácter '*' en un string la manera apropiada es

Código C++:
Ver original
  1. getline(in,nombre,*);

Fíjate en que no se pone el in >> antes de llamar a getline. No obstante veo que intentas incluir todo en la misma línea y haces lo siguiente:

Código C++:
Ver original
  1. in >> getline(cin,nombre,'*') >> esCorrecta;

La base está en que las operaciones realizadas tanto por el operador >> como funciones tipo getline devuelve una referencia al flujo modificado de tal manera que podemos escribir la típica sintáxis cin >> undato >> otrodato >> otradato;

En este caso como getline de por sí es una función el primer in >> sobra, y el primer parámetro que se la pasa d¡a dicho getline es el flujo del que queremos obtener el dato que no es cin sino in.

Haciendo esos ligeros cambios obtienes una línea de código que realmente hace lo que quieres:

Código C++:
Ver original
  1. getline(in,nombre,'*') >> esCorrecta;

No obstante si el hecho de ponerlos en una única linea te resulta incómodo, esa linea es equivalente a:
Código C++:
Ver original
  1. getline(in,nombre,'*');
  2. in >> esCorrecta;