elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Palindromo en un archivo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Palindromo en un archivo  (Leído 4,498 veces)
Eva93

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Palindromo en un archivo
« en: 26 Agosto 2013, 20:12 pm »

Hola compañeros, tengo una duda sobre un programa.

He hecho un programa donde muestra en pantalla el palindromo de una cadena de arrays.

#include <iostream>
#include <stdio.h>
#include <string.h>

using namespace std;

void cadenaInv(char cad[], char cadinv[],int len);

int main()
{

char cad[100];
char cadinv[100];
int len;

cout << "Introduzca una cadena de carcteres" << endl;
gets(cad);

len=strlen(cad);

cadenaInv(cad,cadinv,len);

cout << endl << endl;


cout << "el palindromo es:  " << strcat(cad, cadinv)  << endl;

return 0;
}

void cadenaInv(char cad[],char cadinv[],int len){
int i;
for(i=0;i<len;i++)
cadinv[len-1-i]=cad;
cadinv[len]='\o';}




Ahora aqui viene mi problema, me gustaría aprovechar este programa para leer un archivo inpunt.txt donde se coloca el texto original, y un archivo de salida output.txt donde salga el palindromo de este texto.

Me gustaría intentarlo por mi misma pero necesito una pequeña ayuda ya que no se como hacer esto en archivos.

Saludos  :D


En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Palindromo en un archivo
« Respuesta #1 en: 26 Agosto 2013, 21:04 pm »

Los algoritmos no funcionan sobre archivos. Tienes que leer el contenido del archivo y almacenarlo en tu programa (usa la clase string en vez de arrays de Chars). Después le aplicas el algoritmo y el resultado lo almacenas en un nuevo fichero.

Para manejar los archivos mira te las clases stream ( istream, ostream, etc. ). Hay muchos ejemplos y tutoriales por internet.


En línea

xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: Palindromo en un archivo
« Respuesta #2 en: 26 Agosto 2013, 21:13 pm »

siempre puedes hacer en la linea de comandos:

Código:
./programa > output.txt < input.txt

saludos!
En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Palindromo en un archivo
« Respuesta #3 en: 26 Agosto 2013, 22:53 pm »

siempre puedes hacer en la linea de comandos:

Código:
./programa > output.txt < input.txt

saludos!

Lo que pasa es que imagino que su idea es aprender a manejar ficheros...
En línea

Alien-Z

Desconectado Desconectado

Mensajes: 177


C++ Programmer


Ver Perfil
Re: Palindromo en un archivo
« Respuesta #4 en: 27 Agosto 2013, 11:20 am »

Manejo de ficheros en C++: http://c.conclase.net/curso/?cap=039

Saludos.
En línea

ecfisa

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: Palindromo en un archivo
« Respuesta #5 en: 29 Agosto 2013, 20:26 pm »

Hola Eva93.

Aunque me descoloca el uso de iostream y namespace, por el resto de tu código pareciera que estas usando C.

Si es así, en líneas generales, podrías hacer:

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. void cadenaInv(char cad[],char cadinv[])
  5. {
  6.  int i, len = strlen(cad);
  7.  
  8.  for(i = 0; i<len; i++)
  9.    cadinv[len-i-1] = cad[i];
  10.  cadinv[len] = '\0';
  11. }
  12.  
  13.  
  14. int main()
  15. {
  16.  FILE *input, *output;
  17.  char str[100], inv[100];
  18.  int i = 0;
  19.  
  20.  if ((input=fopen("input.txt", "rt")) == NULL) {
  21.    perror("No se puede abrir el archivo de lectura\n");
  22.    return 1;
  23.  }
  24.  
  25.  if ((output=fopen("output.txt", "wt")) == NULL) {
  26.    perror("No se puede abrir el archvio de escritura\n");
  27.    return 1;
  28.  }
  29.  
  30.  while (!feof(input))
  31.    str[i++] = fgetc(input);
  32.  str[i] = '\0';
  33.  
  34.  cadenaInv(str, inv);
  35.  
  36.  i = 0;
  37.  while (inv[i++])
  38.    fputc(inv[i], output);
  39.  
  40.  fclose(input);
  41.  fclose(output);
  42. }
  43.  

Saludos :)


EI: juntando mensajes.

Hola de nuevo.

Mirando mejor veo que se me escapó cout... Así que en C++ y suponiendo que en el archivo de texto hay una sola palabra o frase, podría ser:

Código
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.  ifstream input("input.txt", ios_base::in);
  10.  ofstream output("output.txt", ios_base::out);
  11.  string st;
  12.  
  13.  getline(input,st);
  14.  input.close();
  15.  
  16.  st = string(st.rbegin(), st.rend());
  17.  output << st;
  18.  output.close();
  19. }
  20.  

Saludos :)
« Última modificación: 30 Agosto 2013, 14:28 pm por Eternal Idol » En línea

Eva93

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Palindromo en un archivo
« Respuesta #6 en: 30 Agosto 2013, 12:35 pm »

Hola Eva93.

Aunque me descoloca el uso de iostream y namespace, por el resto de tu código pareciera que estas usando C.

Si es así, en líneas generales, podrías hacer:

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. void cadenaInv(char cad[],char cadinv[])
  5. {
  6.  int i, len = strlen(cad);
  7.  
  8.  for(i = 0; i<len; i++)
  9.    cadinv[len-i-1] = cad[i];
  10.  cadinv[len] = '\0';
  11. }
  12.  
  13.  
  14. int main()
  15. {
  16.  FILE *input, *output;
  17.  char str[100], inv[100];
  18.  int i = 0;
  19.  
  20.  if ((input=fopen("input.txt", "rt")) == NULL) {
  21.    perror("No se puede abrir el archivo de lectura\n");
  22.    return 1;
  23.  }
  24.  
  25.  if ((output=fopen("output.txt", "wt")) == NULL) {
  26.    perror("No se puede abrir el archvio de escritura\n");
  27.    return 1;
  28.  }
  29.  
  30.  while (!feof(input))
  31.    str[i++] = fgetc(input);
  32.  str[i] = '\0';
  33.  
  34.  cadenaInv(str, inv);
  35.  
  36.  i = 0;
  37.  while (inv[i++])
  38.    fputc(inv[i], output);
  39.  
  40.  fclose(input);
  41.  fclose(output);
  42. }
  43.  

Saludos :)

muchas gracias pero todavia detecto un error.

con este programa si por ejemplo ponemos "Hola mundo", el 2º fichero sale "odnum aloH".  cuando en realidad me gustaría que el 2º fichero saliese "Hola mundo odnum aloH"
En línea

do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: Palindromo en un archivo
« Respuesta #7 en: 30 Agosto 2013, 12:50 pm »

¡Buenas!

Si ya sabes escribir "odnum aloH", deberías de saber escribir "Hola mundo odnum aloH"...

¡Saludos!
En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
Eva93

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Palindromo en un archivo
« Respuesta #8 en: 30 Agosto 2013, 13:20 pm »

¡Buenas!

Si ya sabes escribir "odnum aloH", deberías de saber escribir "Hola mundo odnum aloH"...

¡Saludos!

Ya esta me salio el palindromo completo en el archivo ;-) ;-) ;-), gracias.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Palindromo con Pilas
Programación C/C++
Muffin 1 14,905 Último mensaje 28 Enero 2011, 02:32 am
por ricardo_b
Duda funcion palindromo
Programación C/C++
cazagavilan 2 3,039 Último mensaje 9 Abril 2012, 16:07 pm
por cazagavilan
palindromo « 1 2 »
Programación C/C++
ALONSOQ 16 12,808 Último mensaje 7 Agosto 2012, 17:52 pm
por X3R4CK3R
vector simetrico (palíndromo)
Programación C/C++
indict 3 5,674 Último mensaje 16 Diciembre 2012, 22:39 pm
por bemone
Decir si un vector es palindromo o no
Programación C/C++
sora_ori 3 7,980 Último mensaje 16 Diciembre 2013, 13:35 pm
por leosansan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines