如何在scanf中只输入一个?
How to input just one at scanf?
char command[6];
int command_num=0;
scanf("%s %d", command, &command_num);
如果命令是“top”,我只想输入命令,而不是command_num。
但是当我只输入命令时,输入是继续的。
我该如何解决?
你的描述基本上是伪代码,直接翻译成C:
char command[LARGE_ENOUGH]; // probably no reason to allocate just 6 bytes
if(scanf("%s", command) != 1) // read only command and check result
{
/* handle error - abort program etc */
}
if(strcmp(command, "top") != 0) // if command wasn't top
{
if(scanf("%d", &command_top) != 1)
{
/* handle error - abort program etc */
}
}
如果需要,将这一切放在一个 while
循环中。
但是,更好的解决方案可能是将输入作为字符串并接受字符串中的数字作为命令。
char command[6];
int command_num=0;
scanf("%s %d", command, &command_num);
如果命令是“top”,我只想输入命令,而不是command_num。 但是当我只输入命令时,输入是继续的。 我该如何解决?
你的描述基本上是伪代码,直接翻译成C:
char command[LARGE_ENOUGH]; // probably no reason to allocate just 6 bytes
if(scanf("%s", command) != 1) // read only command and check result
{
/* handle error - abort program etc */
}
if(strcmp(command, "top") != 0) // if command wasn't top
{
if(scanf("%d", &command_top) != 1)
{
/* handle error - abort program etc */
}
}
如果需要,将这一切放在一个 while
循环中。
但是,更好的解决方案可能是将输入作为字符串并接受字符串中的数字作为命令。