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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda en programa con ficheros!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda en programa con ficheros!  (Leído 7,130 veces)
Juan821

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: Ayuda!
« Respuesta #10 en: 30 Junio 2014, 02:54 am »

bueno ya coregido todo lo que me dijeron quiero mostrarles una cosa haber si me pueden ayudar estudie lo de los strings como me dijeron y saque un programa mas de conocimiento lo hice con logica pero quiero que me digan lo del patcher y un pequeño error que me sale primero les mostrare el codigo
Código
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <stdio.h>
  5. #include <fstream>
  6. using namespace std;
  7. int main()
  8. {
  9. int f,i=1,s=1,w,r;
  10. char x[1];
  11. system ("cls");
  12. printf("\n <===============Su categoria es Historia===============> \n");
  13. printf("\n Presione cualquier tecla para escoger su pregunta \n");
  14. cin.ignore();
  15. ofstream res;
  16. res.open("D:\\res.txt",ofstream::out | ofstream::trunc);
  17. ifstream resp;
  18. resp.open("D:\\res.txt");
  19. ifstream narchivos;
  20. narchivos.open("D:\\prueba.txt");
  21. ifstream enarchivos;
  22. enarchivos.open("D:\\prueba.txt");
  23. ifstream archivos;
  24. archivos.open("D:\\prueba.txt");
  25. while (!enarchivos.eof())
  26. {
  27. i++;
  28. f=enarchivos.get();
  29. }
  30. enarchivos.close();
  31. i=i-2;
  32. while (s<=i)
  33. {
  34. f=narchivos.get();
  35. s++;
  36. }
  37. i=i-1;
  38. s=1;
  39. while (s<=i)
  40. {
  41. r=archivos.get();
  42.  
  43. if (r =='\n')
  44. {
  45. printf ("\n");
  46. }
  47. else printf("%c",r);
  48. s++;
  49. }
  50. enarchivos.close();
  51. scanf("%s",x);
  52. res<<x<<endl;
  53. w=resp.get();
  54. if (w==f)
  55. {
  56. printf("Su respuesta fue correcta felicitaciones!");
  57. cin.ignore();
  58.  
  59. }
  60. else
  61. {
  62. printf("Respuesta incorrecta es el turno del otro jugador");
  63. cin.ignore();
  64. }
  65. res.close();
  66. resp.close();
  67. enarchivos.close();
  68. narchivos.close();
  69. archivos.close();
  70. cin.ignore();
  71. system("del c:\\res.txt");
  72. return 0;
  73.  
  74. }

Cuando termino el programa me dice que la variable x la corrompieron (ya lo depure mucho tiempo) y el archivo que quiero que se me borre no se borra :'( y lo otro es lo del path yo quiero que en en vez del prueba.txt pongo la f que esta como variable como hago para que me lea lo que hay dentro de la variable y no que se abra el archivo con nombre f esto dentro del patcher si pueden ayudarme muchas gracias por adelantado


En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Ayuda en programa con ficheros!
« Respuesta #11 en: 1 Julio 2014, 09:00 am »

Cuando termino el programa me dice que la variable x la corrompieron (ya lo depure mucho tiempo)

Una cadena de caracteres, al estilo C que es la que estás usando, se componen de una secuencia de caracteres que termina con el carácter nulo '\0'. Esto quiere decir que si quieres almacenar un texto de 30 caracteres, necesitas un buffer que tamaño igual o superior a 31.

En tu caso tienes char x[1] ... es decir, estás definiendo un arreglo de caracteres de tamaño 1... lo que te permite almacenar, bien un caracter suelto, bien una cadena vacía (solo el carácter nulo). Al intentar almacenar una cadena de caracteres en x, tu código escribirá fuera del espacio reservado para X, por eso te sale el mensaje de memoria corrupta. Debes modificar ese '1' para que tenga un valor igual o superior a "LongitudMaximaDelTextoAAlmacenar+1"

La opción b es usar la clase string y olvidarse de tener que gestionar las cadenas de caracteres a tan bajo nivel.

el archivo que quiero que se me borre no se borra

Deberías fijarte un poco más en tu código:

Código
  1. res.open("D:\\res.txt",ofstream::out | ofstream::trunc);
  2.  
  3. // ...
  4.  
  5. system("del c:\\res.txt");

Es el problema de tener valores constantes "a pelo" en el código, sobretodo cuando están repetidos...

pista: Fíjate en los dos path y busca diferencias.

yo quiero que en en vez del prueba.txt pongo la f que esta como variable como hago para que me lea lo que hay dentro de la variable y no que se abra el archivo con nombre f

Deberías aprender a expresarte un poco mejor.

¿Pretendes no tener que poner el path "a pelo" al abrir los ficheros?

¿Quieres usar 'f' para elegir que fichero tienes que abrir?
Esto no lo vas a poder hacer porque f es de tipo int, no es un string.

¿Quieres que el contenido del fichero se vuelque en 'f'?
Recuerda que 'f' solo puede guardar un entero por vez.

¿Es otra cosa?
Tendrás que replantear la forma de expresar tu problema.


En línea

Juan821

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: Ayuda en programa con ficheros!
« Respuesta #12 en: 1 Julio 2014, 21:09 pm »

Uyyy si muchas gracias bien ahora debo adivinar como poner el path para que se abra desde la ruta donde esta el archivo cpp esto se puede hacer?
« Última modificación: 1 Julio 2014, 23:55 pm por Juan821 » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Ayuda en programa con ficheros!
« Respuesta #13 en: 2 Julio 2014, 01:22 am »

dir\file.txt
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programa para editar ficheros exe « 1 2 »
Ingeniería Inversa
consejo 11 28,413 Último mensaje 11 Marzo 2008, 08:20 am
por Shaddy
problema con programa de ficheros en c
Programación C/C++
Quake-man 1 2,524 Último mensaje 10 Septiembre 2010, 18:39 pm
por nicolas_cof
programa con ficheros
Programación C/C++
tumayy 5 3,314 Último mensaje 25 Octubre 2011, 06:22 am
por do-while
Ayuda programa con ficheros « 1 2 »
Programación C/C++
ankora45 16 6,255 Último mensaje 22 Septiembre 2012, 14:42 pm
por diegoCmC
ayuda con un programa de ficheros
Programación C/C++
aradxc56 1 1,962 Último mensaje 13 Marzo 2019, 16:36 pm
por K-YreX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines