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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: 1 ... 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 [143] 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 ... 161
1421  Programación / Programación C/C++ / Re: funcion en c que pueda ser llamada con parámetros de distintos tipos en: 4 Marzo 2016, 16:49 pm
Si son de tipo genérico sí se puede pues C es muy vago a la hora de mirar el tipo de dato que le pasas: eso lo deja en manos del programador. Puede que los compiladores se quejen, pero con un cast explícito evitas que aparezcan los mensajes de alerta.

Creo recordar que en C++ libertades como esta desaparecen.

Código
  1. #include <stdio.h>
  2.  
  3. double suma(double a, double b) {
  4.    return a + b;
  5. }
  6.  
  7. int main() {
  8.    char cha = 2, chb = 3;
  9.    int ia = 4, ib = 5;
  10.    long la = 6, lb = 7;
  11.    float fa = 8, fb = 9;
  12.  
  13.    printf("char  : %d\n", (char)suma(cha, chb));
  14.    printf("int   : %d\n", (int)suma(ia, ib));
  15.    printf("long  : %li\n", (long)suma(la, lb));
  16.    printf("double: %f\n", suma(fa, fb));
  17.  
  18.    return 0;
  19. }
  20.  
1422  Programación / Programación C/C++ / Re: Sustituir un caracter en C (String.h) en: 4 Marzo 2016, 10:55 am
El problema se encuentra en que después de leer el número de veces a repetir la palabra, en el buffer sigue quedando el caracter de nueva línea que has introducido al pulsar la tecla ENTER. Para solucionar esto puedes usar la siguiente linea de código después de una lectura de estas:
Código
  1. while(getchar() != '\n');
1423  Programación / Programación C/C++ / Re: Sustituir un caracter en C (String.h) en: 3 Marzo 2016, 16:34 pm
Vale, unas cuantas cosas que no tienes claras:
Un array de 1 elemento es una redundancia, por tanto donde pone
Código
  1. char texto1[40],letra[1];
debe poner
Código
  1. char texto1[40],letra;

Los arrays en C empiezan en el índice 0, no el 1. Así pues donde pone
Código
  1. texto[1] = letra[1]
debe poner
Código
  1. texto[0] = letra[0];
pero como hemos dicho que letra es un simple char la línea debe ser así:
Código
  1. texto[0] = letra

Un fallo que has realizado es en la linea
Código
  1. scanf("%s", &letra[1]);
porque estas cargando toda una cadena donde solo te cabe un caracter. Además el fallo es más grave porqué estás escribiendo fuera de la memoria asignada para letra (solo tienes asignado letra[0], escribir en letra[1] es escribir fuera de los límites de la variable). Además hay que recordar que letra lo hemos dejado como caracter por tanto debería escribirse todo de esta forma:
Código
  1. scanf("%c", &letra);
o mejor aún haciendo uso de getchar así:
Código
  1. letra = getchar();
1424  Programación / Programación C/C++ / Re: Escribiendo en C por primera vez: aventura textual *juego* *Hiper básico* en: 3 Marzo 2016, 12:47 pm
Como sabrás una aventura conversacional es todo texto. El jugador no necesita más que una pantalla en modo consola ybun teclado. Lo que venía dar a entender es que una aventura conversacional se puede complicar muchísimo más de lo que lo hará cualquier aventura gráfica.
Se puede aprender a programar creando un parser básico y un mundo muy sencillo, pero si se quiere se puede exprimir al máximo las posibilidades del lenguaje de programación y seguir, de cara al usuario final, con un texto describiendo una habitación en la pantalla y un teclado para introducir el siguiente movimiento del jugador.
1425  Programación / Programación C/C++ / Re: Escribiendo en C por primera vez: aventura textual *juego* *Hiper básico* en: 3 Marzo 2016, 12:17 pm
Hombre, un entorno bueno de aventura conversacional no es tan sencillo. En una aventura hay muchísimos tipos diferentes de objetos: estáticos (solo se pueden examinar), transportables, contenedores (se pueden poner otros objetos dentro), mesas (se pueden poner objetos sobre ellos), edibles, bebibles, transparentes, luminosos, NPC estáticos y móviles, etc. Después los capítulos de la historia, en un capítulo deben existirexistir objetos en ciertos lugares y en posteriores capítulos deben estar en otro sitio y tener comportamientos diferentes.
Por otra parte una aventura gráfica es básicamente un point and click, los comandos son muy básicos y por ende los objetoa. Sin embargo una conversacional puede haber tantos comandos diferentes como verbos tenga el lenguaje español. Además hay que pensar en los álias o sinónimos que pueda usar el jugador para referirse a un objeto; los adjetivos para diferenciar por ejemplo el tronco largo del tronco rugoso. Y muchas cosas más.
Para ver como de complicado se puede hacer todo solo hay que echar un viatazo al programa Infor 6, que es un lenguaje orientado a objetos, y sus librerías. No digo Inform 7 porqué es un paradigma totalmente diferente: lírico se le podría definir.
1426  Programación / Programación C/C++ / Re: Escribiendo en C por primera vez: aventura textual *juego* *Hiper básico* en: 3 Marzo 2016, 09:48 am
Hola, compañera.

Siempre me gustaron las aventuras conversacionales y alguna que otra vez he iniciado la programación de una aventura en C, pero lo abandonaba al poco tiempo. Se me da mejor jugarlas que crearlas: para hacer una madianamente interesante se necesita más de buen escritor que de buen programador.
En cuanto tenga algo de tiempo le echo un ojo al link.  :D
1427  Programación / Programación C/C++ / Re: size_t length en lenguaje C. en: 2 Marzo 2016, 11:11 am
Sí, la primera da la longitud de la cadena hasta el caracter '\0', no incluido. Si lo cuentas a mano verás que el caracter nombre[length] es el '\0' y el caracter nombre[length-1] es '\n'. La siguiente línea de código sustituye el caracter '\n' por el '\0'.
1428  Programación / Programación C/C++ / Re: size_t length en lenguaje C. en: 1 Marzo 2016, 22:34 pm
Lo que hace es retrasar una posición el carácter de fin de cadena '\0' sustituyendo al carácter de nueva línea.
fgets guarda las cadenas de esta forma, si la ha conseguido desde stdin y la ha leído toda:
"Una cadena de ejemplo\n\0"
1429  Programación / Programación C/C++ / Re: Error con memoria dinámica en C++ en: 29 Febrero 2016, 09:49 am
Me parece que no puedes porque intentas acceder a miembros privados del objeto al que copias.
1430  Programación / Programación C/C++ / Re: Como Puedo Copiar Archivo en: 27 Febrero 2016, 09:01 am
BlackM4sater, tienes razón. Empecé a pensar en el problema, luego pensé en como sería sin tuviera que moverlo a otro sitio y se me fue el santo al cielo.
Usar la API es una muy buena solución pero nada portable, amenoa que se usen las clausulas del preprocesador.
Páginas: 1 ... 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 [143] 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 ... 161
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines