C - 变得不工作
C - gets not working
我在使用 gets() 时遇到问题。
问题是它应该只在我没有使用的 vars 的警告下工作,但第一个只是跳到第二个。
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)
再次提前感谢您的帮助,如果您有更多信息请告诉我。
在所有 gets() Check This 之后尝试使用 fflush(stdin);
;
另外,你为什么要使用这个选项 var for ?
如果您需要清除输入流,fflush(stdin)
不会 完成这项工作。据我了解,它适用于 Windows,但大多数其他系统(UNIX,Linux)是未定义的行为。
我是临时写的,所以它可能有效也可能无效,但本质上你需要丢弃所有你不想要的数据。以下从输入缓冲区中丢弃一行。
void clearinline(void)
{
int c;
do {
c = getchar();
} while(c != '\n' && c != EOF)
}
我在使用 gets() 时遇到问题。 问题是它应该只在我没有使用的 vars 的警告下工作,但第一个只是跳到第二个。
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)
再次提前感谢您的帮助,如果您有更多信息请告诉我。
在所有 gets() Check This 之后尝试使用 fflush(stdin);
;
另外,你为什么要使用这个选项 var for ?
如果您需要清除输入流,fflush(stdin)
不会 完成这项工作。据我了解,它适用于 Windows,但大多数其他系统(UNIX,Linux)是未定义的行为。
我是临时写的,所以它可能有效也可能无效,但本质上你需要丢弃所有你不想要的数据。以下从输入缓冲区中丢弃一行。
void clearinline(void)
{
int c;
do {
c = getchar();
} while(c != '\n' && c != EOF)
}