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

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: 1 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 [28] 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 ... 51
271  Programación / Programación C/C++ / Re: como hacer una lectura de una palabra caracter a caracter??? en: 4 Noviembre 2012, 16:27 pm
Código
  1. #include <stdio.h>
  2.  
  3. int main(int argc, char** argv) {
  4.  
  5. if (argc != 2) {
  6. printf("MODO DE USO: %s <palabra>\n", argv[0]);
  7. return 0;
  8. }
  9.  
  10. for (; *argv[1]; argv[1]++) printf("%c\n", *argv[1]);
  11.  
  12. return 0;
  13. }

por que declaras argc y argv dentro d elos parentesis del main??
es la manera para poder pasarle argumentos al programa. antes de explicartelo mejor leete la teoria y luego pregunta en el caso de que tengas una duda concreta, sino realmente no entenderas porque se hace asi. si no te importa leer en ingles, puedes leerte este enlace que es bastante corto. si prefieres en español, buscalo en google que deben haber miles de webs que lo expliquen.

contando con que te has leido ese enlace o algun otro que explique lo mismo, argc es un entero que indica el numero de argumentos totales, siendo el minimo 1 que es el propio programa. en este caso, se llama al programa asi:
Código:
./programa coche255
por lo que habran 2 argumentos: "./programa" y "coche255". de ahi el if del principio del programa, que verifica si solo hay 2 argumentos y en el caso de que no sea asi, indica la manera de usar el programa y se cierra.

y el char** para que sirve??
argv es un puntero a un array de punteros a caracter. este representa los parametros pasados al programa. por ejemplo, en el caso de este programa:
Código:
./programa coche255
argv[0] sera "./programa" y argv[1] sera "coche255". si esto de los punteros no lo entiendes te recomendaria que buscaras de nuevo en google ya que hay tambien miles de webs que hablan sobre ello, y ahi te lo explicaran mucho mejor que yo aqui. si despues de leerlo tienes alguna duda entonces preguntalo aqui y te ayudaremos sin ningun problema.

luego lo que uso en el for es aritmetica de punteros. argv[1] es un puntero a una cadena, asi que la condicion del for es que haya algo en esa posicion de la cadena (que no sea NULL), luego el incremento es sumarle 1 al puntero de la cadena, y dentro tan solo se imprime el caracter en esa posicion de la cadena.

espero que te sirva de ayuda, un saludo!
272  Programación / Programación C/C++ / Re: ¿Cómo guardar en archivo .txt con 2 decimales? en: 3 Noviembre 2012, 22:02 pm
en c++ no lo se, pero en c podria ser algo como:

Código
  1. fprintf(file, "%s %.2f", Pelicula[i].Nombre, Pelicula[i].Precio);

donde file es un puntero a un archivo (FILE*). el prototipo y la explicacion de la funcion lo tienes aqui:

fprintf()

un saludo!
273  Programación / Programación C/C++ / Re: como hacer una lectura de una palabra caracter a caracter??? en: 3 Noviembre 2012, 21:56 pm
Citar
haber k dice el k pregunta pero desde mi punto de vista aun es una variable

ya.. por eso dije lo de que no se si es trampa xD si no es asi entonces ni idea, pero me gustaria saber como hacerlo.
274  Programación / Programación C/C++ / Re: como hacer una lectura de una palabra caracter a caracter??? en: 3 Noviembre 2012, 21:36 pm
Citar
xiruko, no havia pensado en eso pero creo que se refiere a meter un string como "hola" y k le diga h o l a sin variables.

perdona lo habia entendido mal xD

en ese caso, no se si sera trampa pero se puede hacer asi:

Código
  1. #include <stdio.h>
  2.  
  3. int main(int argc, char** argv) {
  4.  
  5. if (argc != 2) {
  6. printf("MODO DE USO: %s <palabra>\n", argv[0]);
  7. return 0;
  8. }
  9.  
  10. for (; *argv[1]; argv[1]++) printf("%c\n", *argv[1]);
  11.  
  12. return 0;
  13. }

y la salida:

Código:
xiruko:~$ gcc prueba.c -o prueba
xiruko:~$ ./prueba
MODO DE USO: ./prueba <palabra>
xiruko:~$ ./prueba coche233
c
o
c
h
e
2
3
3
xiruko:~$

si no se puede asi entonces ni idea xD esperare a que alguien mas postee a ver si sabe la solucion.

un saludo!
275  Programación / Programación C/C++ / Re: como hacer una lectura de una palabra caracter a caracter??? en: 3 Noviembre 2012, 21:25 pm
podrias hacerlo de la siguiente manera, aunque algo necesario es que indiques el numero de letras a introducir. luego pensare en alguna otra manera...

Código
  1. #include <stdio.h>
  2.  
  3. int main() {
  4.  
  5. int i;
  6.  
  7. printf("Numero de letras? ");
  8. scanf("%d", &i);
  9. while (getchar()!='\n');
  10.  
  11. for (i; i>0; i--) {
  12. printf("Has escrito: %c\n", getchar());
  13. while (getchar()!='\n');
  14. }
  15.  
  16. return 0;
  17. }

salida:

Código:
xiruko:~$ gcc prueba.c -o prueba
xiruko:~$ ./prueba
Numero de letras? 4
a
Has escrito: a
b
Has escrito: b
c
Has escrito: c
d
Has escrito: d
xiruko:~$

un saludo!
276  Programación / Programación C/C++ / Re: [Duda C] Ayuda a comprender un código. en: 3 Noviembre 2012, 18:34 pm
Código
  1. while (num>1) fact*=num--;

esto es equivalente a esto otro:

Código
  1. while (num>1) {
  2.     fact=fact*num;
  3.     num--; // num=num-1;
  4. }

un saludo!
277  Programación / Programación C/C++ / Re: como hacer una lectura de una palabra caracter a caracter??? en: 3 Noviembre 2012, 14:35 pm
Código
  1. #include <stdio.h>
  2. #define MAX 32
  3.  
  4. int main() {
  5.  
  6.     char cadena[MAX];
  7.     int i;
  8.  
  9.     for(i=0; i<MAX-1; i++) {
  10.          scanf("%c", &cadena[i]);
  11.          printf("Has escrito %c\n");
  12.     }
  13.     printf("Cadena entera: %s\n", cadena);
  14.     return 0;
  15. }

un saludo!
278  Programación / Programación C/C++ / Re: ejercicio en C en: 2 Noviembre 2012, 15:02 pm
gracias a los 3 por las recomendaciones, aunque primero probare alguno de los dos libros de rir3760 a ver si puedo seguirlo mas o menos.

un saludo!
279  Programación / Programación C/C++ / Re: ¿Cómo determinar que sólo acepte 8 dígitos? en: 2 Noviembre 2012, 14:59 pm
Código
  1. char cadena[9];
  2. int i;
  3.  
  4. fgets(cadena, 8, stdin);
  5. for (i=0; i<8; i++) {
  6.    if (cadena[i] < '0' || cadena[i] > '9') {
  7.        printf("ERROR: Ingresa solo numeros!\n");
  8.        break;
  9.    }
  10. }

con fgets() el usuario podria introducir mas digitos pero solo se aceptarian 8, y luego con el for irias comprobando que cada uno de ellos fuera un numero. si no lo es, te salta el error y luego sale del for. tendrias que implementar algo asi dentro de un while con su respectiva variable de control para repetir este proceso hasta que el usuario introdujese un numero valido.

un saludo!
280  Programación / Programación C/C++ / Re: Ayuda con ejercicio en C en: 31 Octubre 2012, 21:18 pm
Citar
Lo unico que no entiendo es esto:
Código
  1. segundos%=60

es el operador resto o mod (como dije en el primer comentario), y esta sentencia es equivalente a esta:

Código
  1. segundos=segundos%60;

exactamente igual que todas estas que quizas si que has visto:

Código
  1. a+=b; // a=a+b;
  2. a*=b; // a=a*b;
  3. //etc

Citar
conocia el operador ternario, para que quede mas bonito esta bien usarlo, pero a mi personalmente me gusta mas usar un if - else.

de hecho, a parte de bonito o no (que eso va a gustos), es mas eficiente que un if/else. pero bueno en este programa tampoco viene de ahi asi que...

un saludo!
Páginas: 1 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 [28] 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 ... 51
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines