我正在尝试在函数中使用scanf
在第一次使用时,代码工作正常,但在第二次使用时,scanf
不起作用
变量的值不会改变,但我需要输入一些东西
这是我的代码的一部分:
char *choix;
choix=(char *)calloc(20,sizeof(char));
printf("Saisissez le nom du fichier que vous voulez charger : ");
while ( getchar() != '\n' );
scanf("%s", choix);
lab=load(choix);
printf("\n%s\n",lab.nom);
free(choix);
感谢您的帮助。
答案 0 :(得分:1)
停止使用scanf()
这样的东西,它有点难以使用。
相反,使用fgets()
从用户读取整行,然后根据需要解析该行。然后,您可以删除本土输入的刷新代码。
答案 1 :(得分:0)
我发现了问题。我尝试在choix
中设置var lab.nom
,而不设置malloc
lab.nom
。
我只是添加lab.nom=malloc(sizeof(char)*(strlen(choix)+1));
,它运行正常。
谢谢你的帮助。