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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19 20
131  Programación / Programación C/C++ / Re: Ayuda, problema ejercicio juego ahorcado en: 7 Marzo 2019, 19:30 pm
Hola, este es tu código usando el tag de código del sitio...

No comprendo mucho de C, pero tu código no da algún error antes de compilar ?


Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int vidas=6;
  5. int correctas=0;
  6.  
  7. main (){
  8.     void lineas(int n, char a[]);
  9.     char palabra[100];
  10.     char letra;
  11.     char guiones[100];
  12.     int longitud;
  13.     void buscar_letra(char p[], int n, char l, char g[]);
  14.  
  15.     printf ("Digite la palabra a adivinar: ");
  16.     scanf ("%s", palabra);
  17.     fflush(stdin);
  18.     system("cls");
  19.     longitud= strlen(palabra);
  20.     lineas(longitud,guiones);
  21.     printf ("\n");
  22.     printf("\n\t||===== ");                
  23.     printf("\n\t||    | ");
  24.     printf("\n\t||      ");
  25.     printf("\n\t||      ");
  26.     printf("\n\t||      ");
  27.     printf("\n\t||      ");
  28.  
  29.     while (vidas>0){
  30.          printf ("\nDigite la letra: ");
  31.          scanf("%c",&letra);
  32.          fflush(stdin);
  33.  
  34.          if (letra>= 'a'&& letra<='z'){
  35.               buscar_letra(palabra,longitud,letra,guiones);
  36.          } else {
  37.               printf ("\nNo es una letra o la letra es mayuscula (digite una letra minuscula)");
  38.          }
  39.     }
  40. }
  41.  
  42.  
  43. void buscar_letra(char p[100], int n, char l,char g[]){
  44.     int i;
  45.  
  46.     for(i=0;i<n;i++){
  47.          if(p==l){
  48.          printf ("%c", l);
  49.          correctas++;
  50.  
  51.     }else {
  52.          printf ("*");
  53.     }
  54.  
  55. }
  56.  
  57. if (correctas==n){
  58.  
  59.      printf ("\n ADIVINASTE LA PALABRA!!!");
  60.      printf ("\n Ganaste...");
  61.  
  62. }
  63.  
  64.  
  65. void lineas(int n, char a[]) {
  66.       int i;
  67.  
  68.       for (i=0;i<n;i++){
  69.           printf("* ", a);
  70.       }
  71. }
  72.  
  73.  
132  Programación / Programación C/C++ / Re: Error de simbolo externo sin resolver (MSVS) en: 7 Marzo 2019, 18:18 pm
seria como una llamada anidada de archivos.. verdad?

main llama a Clase.h y ésta llama a Clase.hpp ?

Saludos...!"
133  Programación / Programación C/C++ / Re: Error de simbolo externo sin resolver (MSVS) en: 7 Marzo 2019, 04:21 am
Ya entendí, me autorespondo por si alguien mas le interesa la razón..

Pasa que las funciones de clases que usen plantilla son siempre inline, es decir se deben declarar y definir dentro de la clase o al menos en el mismo archivo, creo que a este punto la extensión adecuada del archivo sería .hpp


134  Programación / Programación C/C++ / Error de simbolo externo sin resolver (MSVS) en: 7 Marzo 2019, 03:54 am
Hola amigos..

Estoy estudiando templates y no comprendo este comportamiento:

A continuacion la forma en que NO funciona (con esta forma obtengo el error que sale en el titulo)

Código
  1. //Clase.h
  2.  
  3. template <class TM>
  4. class Clase{
  5.  
  6.     TM num1, num2;
  7.  
  8. public:
  9.     Clase(TM n1, TM n2);
  10.     TM ObtenerMultiplicacion() const;
  11.  
  12. };
  13.  


Código
  1. //Clase.cpp
  2.  
  3. #include "Clase.h"
  4.  
  5. template <class TM>
  6. Clase<TM>::Clase(TM n1, TM n2){
  7.     this->num1 = n1;
  8.     this->num2 = n2;
  9. }
  10.  
  11.  
  12. template <class TM>
  13. TM Clase<TM>::ObtenerMultiplicacion() const{
  14.     return this->num1 * this->num2;
  15. }
  16.  


Sin embargo, con esta forma SI que funciona:
Código
  1. //Clase.h
  2.  
  3. template <class TM>
  4. class Clase{
  5.  
  6.     TM num1, num2;
  7.  
  8. public:
  9.     Clase(TM n1, TM n2);
  10.     TM ObtenerMultiplicacion() const;
  11.  
  12. };
  13.  
  14. template <class TM>
  15. Clase<TM>::Clase(TM n1, TM n2){
  16.     this->num1 = n1;
  17.     this->num2 = n2;
  18. }
  19.  
  20.  
  21. template <class TM>
  22. TM Clase<TM>::ObtenerMultiplicacion() const{
  23.     return this->num1 * this->num2;
  24. }
  25.  

Como verán, declarar la clase y definir sus miembros dentro del mismo archivo me funciona, pero si lo separo, no va... y me parece extraño, porque en el archivo Clase.cpp estoy incluyendo la cabecera con #include "Clase.h"

Que ha sucedido??


gracias de antemano.






135  Programación / Programación C/C++ / Re: Infracción de acceso al leer la ubicación... en: 5 Marzo 2019, 01:05 am
Ok, pero el primer caso me daba error, no podía si quiera mostrar la dirección de memoria..
136  Programación / Programación C/C++ / Re: Infracción de acceso al leer la ubicación... en: 4 Marzo 2019, 22:52 pm
Ya entiendo!, el ejemplo que puse aquí funciona, pensé que el problema estaba en la forma en que llamaba al archivo binario lectura y escritura, y en realidad el problema estaba en que dentro de UnaClase, tengo una variable tipo char * nombre, que me estaba dando el problema, es decir, para lectura y escritura binaria me tengo que olvidar de usar punteros.... es asi? .,..  simplemente reemplace :

Código
  1. char * nombre;
  2.  

por

Código
  1. char nombre[16];
  2.  

y funciono...
curioso.. pero por que sucede esto?, acaso el compilador se confunde cuando copio memoria de un puntero?

En otras palabras, si deseo copiar información en forma binaria a un archivo y leerlo también en forma binaria, la fuente no puede ser memoria dinámica.

Gracias a ambos por las respuestas
137  Programación / Programación C/C++ / Infracción de acceso al leer la ubicación... en: 4 Marzo 2019, 19:42 pm
Buenas.

Estoy intentando guardar y leer de/a un archivo en forma binaria, no tengo problemas guardando, el problema va leyendo el archivo:


Código
  1.  
  2. Ifstream fromFile;
  3. fromFile.open("Archivo.bin", iOS::binary);
  4.  
  5. if (fromFile.good()){
  6.  
  7.     UnaClase uc;
  8.  
  9.     fromFile.read((char*)&uc, sizeof(UnaClase));
  10.  
  11.     //La siguiente linea me da el error:
  12.     std::cout << uc.LeerNumero() << std::endl;
  13.  
  14.  
  15. }
  16.  

Pareciera que no se está escribiendo la información en la memoria que le corresponde a la variable "uc".

Que podrá ser=?

gracias.
138  Programación / Programación C/C++ / Re: c++ bajo nivel en: 4 Marzo 2019, 19:08 pm
Buen apunte, gracias,...
139  Programación / Programación C/C++ / Re: ifstream y while para leer lineas.. pregunta sobre sintaxis.. en: 2 Marzo 2019, 03:47 am
Baia baia.. lo revisare... gracias.


140  Programación / Programación C/C++ / ifstream y while para leer lineas.. pregunta sobre sintaxis.. en: 2 Marzo 2019, 02:18 am
Hola nuevamente por aquí..

Código
  1.  
  2. #include <fstream>
  3.  
  4. void Extraer(){
  5.  
  6.     int x = 0;
  7.     int y = 0;
  8.  
  9.     ifstream fromFile;
  10.     fromFile.open("file.txt");
  11.     if (fromFile.is_open()){
  12.  
  13.          while (fromFile >> x >> y){      // *
  14.  
  15.           }
  16.  
  17.  
  18.     }
  19.  
  20. }
  21.  

Mi duda especificamente va en la linea donde se lee:

Código
  1. while (fromFile >> x >> y){
  2. }
  3.  

Como se lee esa sintaxis?, entiendo que dentro del parámetro de un while va una expresión por lo general del tipo bool... pero la expresión de extraccion que se ve ahi no me hace sentido como argumento... 

Saludos y gracias de antemano.
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19 20
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines