Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: anonimo12121 en 19 Marzo 2013, 23:21 pm



Título: Problema con el delimitador de getline [SOLUCIONADO]
Publicado por: anonimo12121 en 19 Marzo 2013, 23:21 pm
Hola, os comento estoy haciendo una extraccion de una cadena de un fichero y estoy usando getline
 y quiero extraer caracteres hasta encontrar el ~, pero no me funciona con la @ tampoco y quisiera saber a que se debe, he probado los siguientes métodos.

Código
  1. file.getline(x,x,'~');
  2. file.getline(x,x,(char)0xE7);
  3. file.getline(x,x,(char)126);
  4.  
  5.  

Saludos!

EDITO He estado probado otros caracteres que no sean letras, cosas como € + { etc, y tampoco me funciona a que se debe?


Título: Re: Problema con el delimitador de getline
Publicado por: avesudra en 19 Marzo 2013, 23:50 pm
Xafi ¿estás abriendo el archivo bien? Ten cuidado porque en codeblocks si estás ejecutando directamente desde la interfaz, busca el archivo en la raiz de la carpeta del proyecto, no en "Debug" ni en "Release".Comprueba si se está abriendo el archivo.A mí con este código:
Código
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. int main ( int argc , char *argv[])
  7. {
  8.    ifstream file;
  9.    file.open("test",ifstream::in );
  10.    char extraction [100];
  11.    file.getline(extraction,40,'~');
  12.    cout << extraction;
  13.    file.close();
  14.    return 0;
  15. }
Y siendo el contenido de test:
Código:
12345~aeiou
La salida es:
Código:
12345


Título: Re: Problema con el delimitador de getline [Solucionado]
Publicado por: anonimo12121 en 20 Marzo 2013, 00:38 am
Bueno ya lo he solucionado era error mio... al tener 2 carpetas una compartida y una privada no modifique el archivos de texto que tenía que modificar, Siento las molestias XDD saludos y gracias avesudra.


Título: Re: Problema con el delimitador de getline [SOLUCIONADO]
Publicado por: anonimo12121 en 1 Abril 2013, 18:13 pm
Se me ha ocurrido lo siguiente para cuando el texto lo cargas desde un fichero, y quieres incluir "\n" en el fichero en los puntos que deseas, para que a la hora de cargar lo trate como salto de linea, tan solo hay que hacer lo siguiente.
Código
  1. for(int i=0;i<texto.length();i++){
  2.        if(texto[i]=='\\' && texto[i+1]=='n'){
  3.            texto.replace(i,2,"\n");
  4.        }
  5.    }

igual que \n puede ser cualquier otro caracter, solo hay que modificar el codigo, ejemplo:

Código
  1. if(texto[i]=='~'){
  2.            texto.replace(i,1,"\n");
  3.        }