【发布时间】:2017-04-08 09:38:21
【问题描述】:
您将如何处理数量可变的 scanf 输入? 我正在扫描命令,其中一些是 1. word 命令,但有些需要数字参数。 scanf 是否允许以下操作?
scanf(" %s %d", command, argument);
如果只输入一个值,会忽略“参数”吗? 我想到的另一个选择是
scanf(" %s", command)
if (strcmp(command, "somethin") {
scanf("%d", argument); }
但这会创建一个换行符,对吧?终端必须以“> 命令参数”的形式接收输入 所以,我的问题是,如何解决输入数量可变的问题。
【问题讨论】:
-
第一个将等待您输入参数。使用
fgets()读取一行,然后使用sscanf()解析它。 -
您也可以阅读该行,然后使用
strtok()将其拆分为令牌,然后进行解析。 -
你几乎肯定想读一整行然后处理那行