Un libro en linea que puede descargarse de forma gratuita y con una versión en español es Thinking in C++ 2nd Edition de Bruce Eckel.
Un saludo
Un saludo
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úchar* saludo;
/* ... */
gets(saludo);
char *saludo;
/* ... */
saludo = malloc(100);
puts("Texto:");
gets(saludo);
char *copySaludo = malloc(n + 1);
sprintf(copySaludo, "%.*s", n, saludo);
printf("Las %d primeras letras: \"%s\"\n", n, copySaludo);
/* ... */
#define TAMANIO 10
/* ... */
char nAlumnos[TAMANIO];
int alumnos;
int longitud;
int x;
int i;
char **notas;
/* ... */
/* 1) Obtienes el numero de alumnos */
/* 2) Reservas el bloque de memoria principal */
notas = malloc(alumnos * sizeof *notas);
/* 3) Reservas el bloque de memoria para cada alumno */
for (i = 0; i < alumnos; i++)
notas[i] = malloc(TAMANIO);
/* 4) Realizas las operaciones del programa */
/* 5) Liberas la memoria utilizada por cada alumno */
for (i = 0; i < alumnos; i++)
free(notas[i]);
/* 6) Liberas el bloque principal */
free(notas);
Cita de: NOB2014 en 11 Abril 2014, 15:57 PMlo que quiero hacer es reemplazar esta parte de tú código:Si entiendo correctamente lo que buscas es una función similar a eval de javascript para evaluar una expresión almacenada en una cadena.switch(op){
case'+':resultado = atoi(aux[0]) + atoi(aux[1]);
break;
case'-':resultado = atoi(aux[0]) - atoi(aux[1]);
break;
case'*':resultado = atoi(aux[0]) * atoi(aux[1]);
break;
case'/':resultado = atoi(aux[0]) / atoi(aux[1]);
break;
case'%':resultado = atoi(aux[0]) % atoi(aux[1]);
break;
}
Por algo como lo que pongo a continuación, voy a poner un ejemplo sólo como referencia (por supuesto no es la correcta).-int operador[]={+,-,*,/,%};
Y llamarlo desde op
Cita de: pedroedlp en 11 Abril 2014, 19:55 PMpero si vos me decis que en ese puntero se almacena la direccion de la cadena "Hola como te va", porque cuando quiero imprimir la cadena no se pone el astarisco?Porque cuando utilizas la función printf con el especificador "%s" esta espera la dirección en memoria (puntero) del objeto (array) cuyo contenido (cadena) debe procesar (imprimir).char *cadena = "Hola como te va";
printf("%s", cadena);
Cita de: leosansan en 11 Abril 2014, 21:00 PMFuncionar, lo que se dice funcionar, funciona. Otra cosa es que los resultados sean los previstos, que no lo son.A la variable "max" se le asigna el valor cero justo antes del bucle, con ella no hay problema.
Además de declarar main como int inicializo max a cero, que no lo estaba
while ((len = getline(line, MAXLINE) > 0 )) ...
/* Primero se asigna el resultado de getline a len y solo entonces se compara */
while ((len = getline(line, MAXLINE)) > 0 ) ...
Cita de: Drewermerc en 11 Abril 2014, 03:37 AMlo que no entiendo es porque en unos usas .* y en otros solo *Se utiliza el asterisco para evitar usar un valor entero directamente, en su lugar este se toma de la lista de argumentos. Por ejemplo en la llamada:
printf("%*c\n", 3, 'X');
printf("%*.*s\n", 5, 3, "abcde");
Cita de: Drewermerc en 11 Abril 2014, 03:37 AMnose si me podrias decir como se llama la tabla de carcateres especiales donde viene. \n valor 10 y asi susesivamente es que ya no la encuentro.Supongo te refieres a ASCII
Cita de: pedroedlp en 11 Abril 2014, 04:19 AMEsa sentencia declara al array "cadena" y sus elementos se inicializan con 'H', 'l', etc.
Estoy estudiando C, y hasta ahora las cadenas de caracteres las venia creando asi:char cadena[] = "Hola como te va";
Cita de: pedroedlp en 11 Abril 2014, 04:19 AMpero ahora me encontre que tambien se puede hacer asi:Funciona porque el valor inicial del puntero "cadena" es la dirección en memoria donde se almacena la cadena literal "Hola como te va". No se esta almacenando en el la cadena sino su dirección. Caso similar con el cartero: el no confunde la dirección en el sobre (un puntero) con el objeto que debe localizar (la casa).char *cadena = "Hola como te va";
y no entiendo porque funciona [...] en este caso lo estaria usando para guardar en el una cadena de texto
cin >> CuentaNueva.Documento;
cin.getline(User, 10, '\n');