• Miércoles 15 de Mayo de 2024, 22:52

Mostrar Mensajes

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


Mensajes - pitukilloloco

Páginas: 1 ... 3 4 [5]
101
C/C++ / Re: Como Hacer El Link De Un .lib
« en: Martes 3 de Mayo de 2005, 00:36 »
¿también introdujiste la trayectoria en donde se encuentra esa librería?
Esto lo haces en la misma pestaña donde le diste el nombre de la librería (me imagino que la estás escribiendo con toda y la extensión .lib), pero en Categoría cambia General por Input y pones la trayectoria en Additional library path:

102
C/C++ / Re: Lectura De Parametros De Entrda
« en: Martes 3 de Mayo de 2005, 00:01 »
Te dejo un extracto del excelente libro El Lenguaje de Programación C de Brian W. Kernighan y Dennis M. Ritchie (los creadores del lenguaje) traducido de la segunda edición en inglés. Esta es una edición en español de 1991 editada por Prentice-Hall Hispanoamericana, S. A. Lo dicho ahí funciona para cualquier compilador de C/C++, no importando el sistema operativo en que lo estés usando. Espero que te sirva.

5.10 Argumentos en la línea de órdenes
   Dentro de un medio ambiente que maneje C hay una forma de pasar argumentos en la línea de órdenes o de parámetros a un programa cuando empieza su ejecución. Cuando se llama a main se le invoca con dos argumentos. El primero, llamado por convención argc (por "argument count") es el número de argumentos en la línea de órdenes con los que se invocó el programa; el segundo argv (por "argument vector") es un apuntador a un arreglo de cadenas de caracteres que contiene los argumentos, uno por cadena. Se acostumbra a utilizar niveles múltiples de apuntadores para manipular esas cadenas de caracteres.
   El ejemplo más sencillo es el programa echo, que despliega sus argumentos de la línea de órdenes en una línea, separados por blancos. Esto es, la orden
echo hola, mundo
imprime
hola, mundo
   Por convención, argv[0] es el nombre con el que se invocó el programa, por lo que argc es por lo menos 1. Si argc es 1, entonces no hay argumentos en la línea después del nombre del programa. En el ejemplo anterior, argc es 3, y argv[0], argv [1] y argv[2] son echo, hola y mundo, respectivamente. El primer argumento optativo es argv[1] y el último es argv[argc-1]; además, el estándar requiere que argv[argc] sea un apuntador nulo
La primera versión de echo trata a argv como un arreglo de apuntadores a caracteres:
Código: Text
  1.  
  2. #include <stdio.h>
  3. /* eco de los argumentos de la línea de órdenes; 1a. versión */
  4. main (int argc, char *argv[])
  5. {
  6.   int i;
  7.  
  8.   for (i = 1; 1 < argc; i++)
  9.     printf ("%s%s", argv[i], (i < argv-1) ? " ": "");
  10.   printf ("\n")
  11.   return 0;
  12. }
  13.  
  14.  
Como argv es un apuntador a un arreglo de apuntadores, se pueden manipular al apuntador en lugar de indexar al arreglo. Esta siguiente variación se basa en incrementar argv, que es un apuntador a un apuntador a char, en tanto se disminuye argc:
Código: Text
  1.  
  2. #include <stdio.h>
  3.  
  4. /* eco de los argumentos de la línea de órdenes; 2a. versión */
  5. main (int argc, char *argv[])
  6. {
  7.   while (--argc > 0)
  8.     printf ("%s%s", *++argv, (argc > 1) ? " ": "");
  9.   printf ("\n");
  10.   return 0;
  11. }
  12.  
  13.  
Puesto que argv es un apuntador al inicio del arreglo de cadenas de argumentos, incrementarlo en 1 (++argv) lo hace apuntar hacia argv[1] en lugar de apuntar a argv[0]. Cada incremento sucesivo lo mueve al siguiente argumento; entonces *argv es el apuntador a ese argumento. Al mismo tiempo, argc disminuye; cuando llega a cero, no quedan argumentos por imprimir.
   En forma alternativa, podemos escribir la proposición printf como
   printf ((argc > 1) ? "%s" : "%s", *++argv);
Esto demuestra que el argumento de formato de printf también puede ser una expresión.

Páginas: 1 ... 3 4 [5]