我在使用gets()函数时遇到了问题。 问题是它应该只会有一个未使用变量的警告,但第一个gets()却直接跳到了第二个。
int addClube(char *fileName)
{
char qClube2[100], qClubeSimple[100], qEstadio[100], qCompleto[500],qAcronimo[100];
int option=0;
printf("\n Indique o nome completo do clube:\n (sem acentos)\n ");
gets(qClube2);
printf("\n Indique o nome simplificado do clube:\n (sem acentos)\n ");
gets(qClubeSimple);
printf("\n Indique o acronimo do clube:\n ");
scanf("%s",qAcronimo);
printf("\n Indique o nome do estadio:\n ");
gets(qEstadio);
return option;
}
函数开始时我得到的输出:
Indique o nome completo do clube:
(sem acentos)
Indique o nome simplificado do clube:
(sem acentos)
再次感谢您的帮助,如果您需要更多信息,请告诉我。
scanf("%d"
。 - M.Mgets
本质上是不安全的,无法修复,应该使用fgets
来替代。 - Sergey Kalinichenkoscanf("%s",qAcronimo);
会在stdin
中留下结尾的'\n'
,后续使用gets()
时会将其作为空行消耗掉。所以最好使用fgets()
。 - chux - Reinstate Monica