Ver Mensaje Individual
  #11 (permalink)  
Antiguo 31/10/2015, 15:10
Avatar de xKuZz
xKuZz
 
Fecha de Ingreso: febrero-2015
Ubicación: nullptr
Mensajes: 183
Antigüedad: 9 años, 2 meses
Puntos: 27
Respuesta: Error al compilar en C++ (archivos)

1. Ese getline es específico para std::string.

En ese caso tienes varias formas de llamarlo

a) getline(istream &is, string &str, char delim)
donde is es el flujo de entrada (cin o un ifstream, como en nuestro caso archivo)
donde str es un std::string en el que se almacena todo lo que recoge la función.
delim es el carácter que nos indica que paremos.

b) getline(istream &is, string& str)
Esta es la que he utilizado.
Igual que antes, indico el flujo de entrada y donde vamos a almacenar la línea.
En este caso se presupone que \n es el carácter delimitador. Por tanto va a coger del punto donde vayas en el flujo de entrada ifstream archivo, y la secuencia de caracteres hasta encontrar '\n' (salto de línea) la va a almacenar en el string palabra.

Referencia de la función (Inglés): http://www.cplusplus.com/reference/s...tring/getline/

2- Sí, string::size te devuelve el tamaño del string, es decir el número de caracteres que ocupa. Ojo: los espacios en blanco también son carácteres si hubiese un espacio en blanco antes del salto de línea contaría como una palabra con más letras como espacios extras.

Referencia de la función (Inglés): http://www.cplusplus.com/reference/string/string/size/

3-Porque cogí un trozo de código y lo adapté para el ejemplo y estaba puesto así. Si llamas a ifstream archivo("archivo.txt") eso implica crear la variable archivo y hacer el open de archivo.txt. Puedes utilizar la forma que veas más conveniente.

Referencia de la función (Inglés): http://www.cplusplus.com/reference/f...ream/ifstream/
Referencia de la función (Inglés): http://www.cplusplus.com/reference/f...ifstream/open/