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 - Horricreu

#131
Cita de: saizer09 en 27 Agosto 2010, 00:41 AM
grax por el link, me sera de gran utilidad!! ;D

De nada ::)

Saludos :P
#132
Programación C/C++ / Re: Pregunta Cadenas
26 Agosto 2010, 16:44 PM
Me alegro que te vaya bien, pero sigues teniendo errores y cosas a mejorar:


  • Incluyes la librería stdlib.h que no es necesaria, tal y como te dije en mi primera respuesta.
  • Declara int main() en vez de main(), si no en algún compilador bueno te dará error.
  • Utilizas variables globales, que no son aconsejables ya que tienen una legibilidad menor, condiciona a que el programa sólo sirva para unos casos determinados, puede producir efectos colaterales y atenta contra uno de los principios de la programación, la programación modular.

Saludos :P
#133
Programación C/C++ / Re: Pregunta Cadenas
26 Agosto 2010, 16:33 PM
Cita de: Tokes en 26 Agosto 2010, 16:30 PM
La función fgets() guarda al final de la cadena un '\n'. Dicho caracter no es parte en sí del texto tecleado (es el retorno de carro, me parece).

               Saludos.

CitarGet string from stream

Reads characters from stream and stores them as a C string into str until (num-1) characters have been read or either a newline or a the End-of-File is reached, whichever comes first.
A newline character makes fgets stop reading, but it is considered a valid character and therefore it is included in the string copied to str.
A null character is automatically appended in str after the characters read to signal the end of the C string.

Saludos :P
#134
Programación C/C++ / Re: Pregunta Cadenas
26 Agosto 2010, 16:23 PM
Cita de: clodan en 26 Agosto 2010, 16:10 PM
Cita de: Eternal Idol en 26 Agosto 2010, 16:06 PM
scanf no es recomendable, asi tenes mas seguridad (al pasar el tamaño del buffer) y no se ensucia el buffer del teclado (por eso getchar funciona):

fgets(sta, sizeof(sta), stdin);

scanf con %s lee una palabra sola, no es problema del conteo, probalo con fgets y vas a ver como funciona bien. Esto es matar dos pajaros de un tiro  ;D

en ese codigo, podrias especificarmelo un poco mas, estoy recien salidito del horno con cadenas y no entiendo una goma

fgets() de la librería stdio.h. Si te fijas en el enlace:


  • El primer parámetro es un puntero a una matriz, donde se almacenará lo escrito por teclado.
  • El segundo parámetro es el máximo de caracteres que van a ser leídos incluyendo el carácter nulo. Por lo tanto, se le pasará la longitud de la matriz del primer parámetro usando el operador sizeof() .
  • El tercer parámetro es de entrada, por lo tanto se tiene que poner stdin que viene que standard input o entrada standard.

Saludos :P
#135
Programación C/C++ / Re: Pregunta Cadenas
26 Agosto 2010, 16:09 PM
A parte de lo que te dijo Eternal Idol, ¿por qué incluyes la librería stdlib.h si no la utilizas?

Saludos :P
#136
De nada ::)

Saludos :P
#137
Sigues sin cerrar bien las llaves. Como no has entendido nada de nada, cómprate un buen libro y empieza desde cero.

Saludos :P
#138
Cita de: miguelb18 en 25 Agosto 2010, 22:53 PM
bueno no entendi pero muchas gracias voy a tratar de entender eso que dijiste y a ponerlo en practica xD =) gracias

¿Cómo que no entendiste? Está más claro que el agua.


#include <stdio.h>

int main()
{
int a = 1;
int b = 1;

if(a == b) //Esto es una instrucción
{
printf("'a' equivale a 'b'."); //Esto es una sentencia
}

getchar();

return 0;
}


¿Aún no entiendes nada?

Saludos :P
#139
Cita de: miguelb18 en 25 Agosto 2010, 22:46 PM
si, pero las llaves son porque estoy trabajando con arreglos y segun investigue debo poner las llaves para cargar los arreglos...

¿Y qué importa si trabajas con arreglos? Te he dicho que en las instrucciones con más de una sentencia se ponen llaves y en las de una sentencia no hace falta ponerlas.

Saludos :P
#140
Cita de: Horricreu en 25 Agosto 2010, 21:38 PM

  • Utilizas las funciones exit() y system() de la librería stdlib.h que pueden ser cambiadas por un return y la función getchar(), de la librería stdio, respectivamente.
  • Tienes errores en las llaves de la primera y segunda opción del swtich().
  • En el último if() te falta poner otro signo de igual y, tampoco puedes hacer esta comparación.

Te respondo en orden:


  • exit() sirve para terminar procesos y ya la puedes utilizar pero, para mejor utiliza return 0 que es lo que se usa ahora. La función system() no es portable y, hay sustitutos mejores como getchar(). Ambas funciones que utilizaste primeramente, pertenecen a la librería stdlib.h y puedes ahorrarte incluir esta librería con las soluciones que te propuse.
  • Las llaves se utilizan de la siguiente manera (te pongo un ejemplo luego ya que la etiqueta [list][/list] no me deja colorear el código).
  • Finalmente, léete esto, el apartado de operadores de comparación para saber como utilizarlos.

Ejemplo que llaves:


#include <stdio.h>

int main()
{
int a = 1;
int b = 2;
int c = 1;
int d = 1;

if(a != b)
{
printf("'a' no equivale a 'b'.");

b = 1;

printf("Ahora sí que 'a' equivale a 'b'.");

//Fíjate que puse las llaves después del if()
}

if(c == d) printf("'c' equivale a 'd'.");

//Pero en las instrucciones de una sola sentencia no hace falta poner las llaves

getchar();

return 0;
}


Saludos :P