Escribí un código que tiene que mostrar los parámetros principales, pero cuando lo compilé y escribí "*", el programa muestra la estructura de mi archivo. El comando en cmd se ve así:program.exe 1 2 3 *
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char const* argv[]) {
for (int i=0; i<argc; i++) printf("%s\n", argv[i]);
return 0;
}
El resultado es:
program
1
2
3
program.c
program.exe
10-03-20
11-02-20
Y mi pregunta: ¿es posible forzar al programa a imprimir "*" en lugar de listar archivos. Gracias en consejos
*
convierte "file1 file2 ..."
. No hay nada malo con su programa C (aunque incluirlo <stdlib.h>
no es necesario). Para evitar que el shell convierta la estrella, use comillas:program.exe 1 2 3 "*"
char const* argv[]
no es correcto. No puede inventar formas de main () por sí mismo, solo el compilador puede hacerlo. argv
en realidad es memoria de lectura / escritura, a pesar de que escribir a menudo no es la mejor idea.
*
intérprete lo interpreta, no el programa en sí. Use\*
o"*"
para pasar el * al programa.