Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - rir3760

#1291
Buena pregunta.

Según el estándar de C (ISO C99) un compilador debe aceptar, como mínimo, cadenas literales de hasta 4,095 caracteres.

Según el viejo estándar de C++ (C++98) no hay limites sino recomendaciones, en su Anexo B (que solo es informativo) se sugiere un limite 65,536 caracteres para una cadena literal.

Lo mejor en un escenario como este es revisar la documentación del compilador.

Un saludo
#1292
El mensaje de error se debe a que indicas una longitud (1000) pero la cadena literal consta de un numero mayor de caracteres (debes considerar el '\0' al final de esta).

Se debe solucionar si eliminas el numero de elementos.

Un saludo
#1293
Programación C/C++ / Re: comparacion de cadenas
19 Febrero 2012, 16:16 PM
También se debe cambiar la declaración del array de arrays y ya en eso modificar las macros para que cumplan su función.

Por ejemplo:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_PERSONAS  2
#define LONG_NOMBRE  20

int main(void)
{
   char nombre[MAX_PERSONAS][LONG_NOMBRE];
   char nombreBuscado[LONG_NOMBRE];
   float estatura[MAX_PERSONAS];
   int edad[MAX_PERSONAS];
   int i;
   
   /* ... */
   
   return 0;
}


Un saludo
#1294
Programación C/C++ / Re: Cómo atrapo enter?
19 Febrero 2012, 16:03 PM
Tienes que explicarte de una forma clara y precisa ya que una descripción como esta:
Cita de: prometheus48 en 18 Febrero 2012, 18:46 PMMi objetivo es como un intérprete de comandos que sale todo el rato ">>>" y si escriber say "Hola" ( eso lo sé hacer ) salga hola, pero el problema esque si el usuario pulsa la tecla enter vuelva a salir ">>>"
Deja muchas dudas.

En el caso de C++ puedes leer la linea completa mediante getline para después procesarla. Detalles ya mas en especifico una vez nos des un ejemplo de la operación de tu programa.

Un saludo
#1295
Los caracteres literales son una forma mas fácil de indicar un entero de tipo "signed int", por ejemplo 'A' en lugar de 65.

Las cadenas literales como "Hola" se almacenan en memoria y cuando se utilizan (salvo ciertas excepciones) resultan en la dirección en memoria del primer elemento del array (se consideran arrays de caracteres).

Tu problema se encuentra en la linea:
char i = "a";
Ya que en buen cristiano se puede traducir a "Tómese la dirección en memoria del array indicado y almacenese en la variable en cuestión". Después tratas de imprimir la dirección (mas bien lo que se pudo almacenar de ella en un carácter) y por ello el resultado.

Un saludo
#1296
Programación C/C++ / Re: comparacion de cadenas
18 Febrero 2012, 02:13 AM
Las expresiones que se pasan como argumentos a la función "strcmp" pueden tener cualquier forma siempre y cuando el tipo del resultado sea "char *".

Si tienes un problema (como parece ser) con una llamada en particular publica el código fuente del programa.

Un saludo
#1297
Cita de: Anastacio en 17 Febrero 2012, 13:43 PMsi tu pones rand para imprimir, como si fuese una variable, te da el valor del numero aleatorio calculado por el Srand.
No. "srand" solo define la semilla, el siguiente valor de la serie es calculado y retornado por la función "rand".

Va de nuevo el consejo: un buen libro y adiós a la mayoría de los problemas.

Cita de: Anastacio en 17 Febrero 2012, 13:43 PMEntonces, tambien podria poner un wait(1), para que espere un segundo. El sleep y el wait han de ser parecidos, no?
No tienes porque utilizar pausas entre llamadas a "rand", si se requiere es por algún error en el programa y mientras no publiques su código fuente sera difícil (sino imposible) ayudarte.

Un saludo
#1298
Programación C/C++ / Re: comparacion de cadenas
17 Febrero 2012, 01:41 AM
Hay que tener cuidado con esto:
setbuf (stdin, NULL);//limpia el buffer
Ya que no es correcto debido a que la llamada a "setbuf" debe realizarse antes de cualquier llamada a función que procese el stream y no es el caso (debido al bucle).

Para evitar problemas lo mejor es leer "stdin" por linea mediante la función "fgets" (o una propia).

Un saludo
#1299
Si tomas el consejo que mas de un usuario, con la mejor intención, te ha dado: obtener un libro de calidad y leerlo con calma y cuidado encontraras que la mayoría de las respuestas (a las preguntas que realizas) están ahí.

En cuanto a la pregunta: si y no. Puedes utilizar caracteres como ' ', '\t' y '\n' en la cadena de formato de "scanf" pero no se toman literalmente, en su lugar se procesan como la indicacion de "una secuencia de cero o mas caracteres de tipo espacio blanco".

Un saludo
#1300
Cita de: Anastacio en 16 Febrero 2012, 20:35 PMEn un programa que estoy haciendo, necesito que se generen dos numeros aleatorios (Lo estoy haciendo con srand,), y uso time, para que me generen semillas diferentes unas de otras.

...

Nota: Ya busque en google, en la guia del Dev C ++, en los ejemplos de los programas por internet y por Dev C ++.
Por lo visto no buscaste en estos foros ya que hay temas relacionados con la operación que mencionas, uno de ellos es Ayuda en codigo que genera aleatorio.

Y casi puedo asegurar que tu error es colocar la llamada a srand justo antes de la llamada a rand: esa es la única explicación para obtener dos veces el mismo numero con llamadas consecutivas a función.

Un saludo