Установите files.txt в аргументы программы в блоках кода - PullRequest
0 голосов
/ 19 июня 2020

Мой вопрос простой, я новичок в языке c, в настоящее время я разрабатываю игру «Палач на блоках кода». Для этого на меня было наложено ограничение, файл, в котором находится мой словарь слов, я должен передать в качестве аргумента в свою программу. В своем исследовании я увидел, что на вкладке «Проект -> Установить аргументы программы ..» мы можем добавлять аргументы, но я не могу передать свой текстовый файл в качестве параметра. У кого-нибудь есть решение, пожалуйста? Большое вам спасибо

Я передаю это так:

image

Но когда я создаю свою программу, она не определяет мой файл.

это код, который пытается прочитать файл

char *read_file(int ac, char **av, int *lifes, char **word)
{
 int fd = -1;
 int nb_caractere = 0;
 char *buffer = calloc(1,sizeof(char));

 if((fd = open(av[1], O_RDONLY)) == -1)
 {
   printf("Aucun fichier ou dossier. \n");
   return (NULL);
 }
 lseek(fd, 0, SEEK_SET);
 while(read(fd, buffer, 1) > 0)
 {
   nb_caractere++;
 }
 lseek(fd, 0, SEEK_SET);
 buffer = calloc(nb_caractere+1, sizeof(char));
 memset(buffer, 0, nb_caractere+1);
 read(fd, buffer, nb_caractere);
 close(fd);
 return (buffer);
}

, и основной способ вызова этой функции таков:

int main(int ac, char **av)
{
  int lifes = 10;
  char *word = NULL;
  char *hide_word = NULL;

  srand(time(NULL));
  if(ac < 2 || ac > 3)
  {
    printf("Nombres d'arguments incorrect !\n");
    return (84);
  }
  if(ac == 3)
  { 
    lifes = atoi(av[2]);
  }
  if(init_game(lifes, &word, &hide_word, read_file(ac, av, &lifes, 
  &word)) == 84 )
  {
    free(word);
    return (84);
  }
  game_loop(lifes, word, hide_word);
  free(word);
  free(hide_word);
  return 0;
}

вывод этого кода - «aucun fichier ou dossier»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...