PDA

Ver la versión completa : novato en C



jkphreak
29-01-2004, 17:14
Hola. Estoy empezando con el C/C++ y intento hacer un programa que escanee IPs con el comando "nbtstat -A ipaescanear", hasta aqui es facil. Pero deseo que el programa me pregunte cual es la IP que quiero escanear. Pero llego a esta conclusion (erronea): "system("nbtstat -A %c", ip);" . Lo se, asi es como se hace para meter variables en los printf, y en este caso no es correcto, pero nunca habia metido una variable en una funcion de este tipo, eso es lo que no se hacer.

Como llamo desde "system("...")" a una variable de qualquier tipo?

Recordad que en esto soy un newbie (por el lenguaje tesnico mas que nada...)...

Muchas gracias de antemano.

Giskard
30-01-2004, 00:32
hola, para empezar no confundas las sintaxis, puesto que no es lo mismo la funcion system que printf, lo que puedes hacer es usar dos arreglos de caracteres, hay una función que se llama strcat y sirve para unir dos cadenas de texto, mas o menos deberia quedar asi:

char cadena[50]="nbtstat -A ";
char ip[16];
scanf("%s",ip);
strcat(cadena,ip);
system(cadena);

espero que te sirva de algo, sólamente agrego que la funcion strcat esta en la función string.h, para más información visita esta pagina:

http://c.conclase.net/librerias/funcion.php?fun=strcat

jkphreak
30-01-2004, 19:08
muxas gracias, giskard. ya me funciona el programa, aunque al final no lo he echo de la manera como m aconsejavas ya q resolvi mi duda antes, de esta manera:

int a=192;
int b=168;
int c=0;
int d=130;
char ordre[10];


sprintf(ordre,"nbtstat -A %d.%d.%d.%d",a,b,c,d);
system(ordre);

De forma provisional, como prueba, asigne el valor de los campos de la IP en la declaracion de los enteros, y funciona a la perfeccion, ya are luego los scanfs i printfs necesarios...

PD.- Gracias por la direccion de la web, se ve bastante completa.