Я написав код, який повинен відображати основні параметри, але коли я його скомпілював і набрав у програмі "*", відображається моя файлова структура. Команда в 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
насправді пам'ять для читання / запису, навіть якщо писати до неї часто не найкраща ідея.
*
Отримує інтерпретатором, а не як така програма. Використовуйте\*
або"*"
для передачі * до програми.