Autor
|
Tema: Palindromo en un archivo (Leído 4,498 veces)
|
Eva93
Desconectado
Mensajes: 13
|
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
|
|
|
En línea
|
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
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
Mensajes: 438
|
siempre puedes hacer en la linea de comandos: ./programa > output.txt < input.txt saludos!
|
|
|
En línea
|
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
siempre puedes hacer en la linea de comandos: ./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
Mensajes: 177
C++ Programmer
|
|
|
|
En línea
|
|
|
|
ecfisa
Desconectado
Mensajes: 114
|
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: #include <stdio.h> #include <string.h> void cadenaInv(char cad[],char cadinv[]) { for(i = 0; i<len; i++) cadinv[len-i-1] = cad[i]; cadinv[len] = '\0'; } int main() { FILE *input, *output; char str[100], inv[100]; int i = 0; if ((input =fopen("input.txt", "rt")) == NULL ) { perror("No se puede abrir el archivo de lectura\n"); return 1; } if ((output =fopen("output.txt", "wt")) == NULL ) { perror("No se puede abrir el archvio de escritura\n"); return 1; } str[i] = '\0'; cadenaInv(str, inv); i = 0; while (inv[i++]) }
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: #include <iostream> #include <fstream> #include <string> using namespace std; int main() { ifstream input("input.txt", ios_base::in); ofstream output("output.txt", ios_base::out); string st; getline(input,st); input.close(); st = string(st.rbegin(), st.rend()); output << st; output.close(); }
Saludos
|
|
« Última modificación: 30 Agosto 2013, 14:28 pm por Eternal Idol »
|
En línea
|
|
|
|
Eva93
Desconectado
Mensajes: 13
|
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: #include <stdio.h> #include <string.h> void cadenaInv(char cad[],char cadinv[]) { for(i = 0; i<len; i++) cadinv[len-i-1] = cad[i]; cadinv[len] = '\0'; } int main() { FILE *input, *output; char str[100], inv[100]; int i = 0; if ((input =fopen("input.txt", "rt")) == NULL ) { perror("No se puede abrir el archivo de lectura\n"); return 1; } if ((output =fopen("output.txt", "wt")) == NULL ) { perror("No se puede abrir el archvio de escritura\n"); return 1; } str[i] = '\0'; cadenaInv(str, inv); i = 0; while (inv[i++]) }
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
Mensajes: 1.276
¿Habra que sacarla de paseo?
|
¡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
Mensajes: 13
|
¡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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Palindromo con Pilas
Programación C/C++
|
Muffin
|
1
|
14,905
|
28 Enero 2011, 02:32 am
por ricardo_b
|
|
|
Duda funcion palindromo
Programación C/C++
|
cazagavilan
|
2
|
3,039
|
9 Abril 2012, 16:07 pm
por cazagavilan
|
|
|
palindromo
« 1 2 »
Programación C/C++
|
ALONSOQ
|
16
|
12,808
|
7 Agosto 2012, 17:52 pm
por X3R4CK3R
|
|
|
vector simetrico (palíndromo)
Programación C/C++
|
indict
|
3
|
5,674
|
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
|
16 Diciembre 2013, 13:35 pm
por leosansan
|
|