c - 将 files.txt 设置为代码块中的程序参数
问题描述
我的问题很简单,我是c语言的初学者,我目前正在开发代码块上的刽子手游戏。为此,对我施加了限制,即我的字典所在的文件,我必须将其作为参数传递给我的程序。我在研究中看到,在项目 -> 设置程序的参数 .. 选项卡中,我们可以添加参数,但我不能将我的文本文件作为参数传递。请问有人有解决办法吗?太感谢了
我这样传递:
但是当我构建我的程序时,它没有检测到我的文件。
这是尝试读取文件的代码
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”
解决方案
推荐阅读
- android - 使用android发送电子邮件而不发送电子邮件
- google-sheets - 谷歌表格过滤器+匹配?没有把握
- reactjs - 反应道具中的条件渲染
- acumatica - Acumatica - 删除通用样式的通风口处理程序
- mathematical-optimization - 最优解中的一些值仍然违反 Matlab FMINCON 中的约束限制
- java - 如何从可选 ifPresentOrElse 返回方法值
- php - 我有 Sum 列,其中客户是活跃的,并且上个月 Laravel 分组
- php - 在Php和邮件功能中使用Msmtp + gmail 收到邮件时如何查看发件人的邮件地址?
- excel - Excel公式计算日期范围
- javascript - 有没有一种简单的方法可以根据在单个对象的深层嵌套中发现的键模式来拆分深度嵌套的对象数组?