Это мой первый пост на этом сайте, поэтому, пожалуйста, простите за любые ошибки форматирования.Я пишу небольшую программу для получения простой информации из файла, например количества слов, сортировки и т. Д. Однако я начал с использования getopt, так как хочу использовать командную строку для разбора моих команд.Это то, что я до сих пор.
#include <stdio.h>
#include <stdlib.h>
int value = 0;
int main(int argc, char **argv) {
extern char *optarg;
extern int optind;
int c, err = 0;
int cflag = 0, sflag = 0, fflag = 0;
char *substring;
// usage from instructions in case of error
static char usage[] = "usage: mywords [-cs] [-f substring] filename";
// only f flag requires additional input
while ((c = getopt(argc, argv, "csf:")) != -1)
switch (c) {
case 'c':
cflag = 1;
break;
case 's':
sflag = 1;
break;
case 'f':
fflag = 1;
printf("Before assigning to substring\n");
substring = optarg;
printf("After\n");
break;
case '?':
err = 1;
break;
}
if (fflag = 1) {
printf("%c ", &substring);
}
}
Затем я запишу что-то подобное в командную строку после того, как запустил свой make-файл (который успешно работает без ошибок):
mywords -f test
и в идеале вывод будет
test
Операторы printf, которые я имею в fflag, - это простые тестовые распечатки, чтобы увидеть, достиг ли я даже этого.Заранее благодарю за помощь.
РЕДАКТИРОВАТЬ
Исправлено.У Дэвида Коллинза был правильный ответ.Большое спасибо всем