我需要创建某种形式的输入,用户可以在其中键入各种指令。它们是否附加一个值(例如:“ADD1”)是可选的。加法是指令,1是值。如果没有附加值,则将在不需要值的地方执行指令,例如循环的“结束”。假设用户没有输入一个值,如何使其成为可能,以便“val”是可选的?如果没有附加值,scanf应该将字符串输入附加到'instr'并忽略'val'。
样品

Scanf("%s %d", instr, val);

最佳答案

一般来说,解决此类问题的方法是使用scanf获取整个字符串,然后在内存中自己解析它:

char cmdline[100];
scanf("%99s", cmdline);
if (strstr(cmdline, "ADD") == cmdline) {
    ... Get an int from cmdline buffer starting at position 3
} else if (strstr(cmdline, "END") == cmdline) {
    ... Don't get anything
}

关于c - 如何在C中为scanf创建可选输入?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36440856/

10-11 19:42