Я написал код, который должен отображать основные параметры, но когда я скомпилировал его и набрал "*", программа показывает структуру моего файла. Команда в cmd выглядит так: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;
}
Результат:
program
1
2
3
program.c
program.exe
10-03-20
11-02-20
И мой вопрос: можно ли заставить программу печатать "*" вместо перечисления файлов. Спасибо за совет
*
конвертируется в "file1 file2 ..."
вашу оболочку. В вашей C-программе нет ничего плохого (хотя в <stdlib.h>
этом нет необходимости). Чтобы предотвратить преобразование звезды в оболочку, используйте кавычки:program.exe 1 2 3 "*"
char const* argv[]
это не правильно. Вы не можете сами придумывать формы main (), это может делать только компилятор. argv
фактически является памятью для чтения / записи, хотя запись в нее часто не самая лучшая идея.
*
Получает интерпретатором, а не сама программа. Используйте\*
или"*"
для передачи * в программу.