c - 跳过可选的 scanf 参数

标签 c scanf

我正在做一项类作业。 这是关于基数转换器的。其工作方式如下,例如:convert 11010 2 16,其中11010是要转换的数字,2是原始基数, 16 是目标基数。

但我还想要代替输入数字,使用诸如 -h 之类的附加选项来获取帮助等。 如果是这样,我希望基数输入在输入时被忽略(跳过 216)。

用C语言可以吗?

最佳答案

在出现某些选项时忽略某些输入参数是相当常见的,而且当然是可行的。在对任何输入参数执行任何操作之前,先解析所有输入参数。首先检查最重要的选项(在您的情况下为“-h”)。如果给出了,就采取行动,忽略其他人的存在。为程序指定“help”参数通常只是 printf 的一段文本,然后立即退出。

如果您使用命令行参数,这就像迭代 argv 一样简单。如果您从控制台获取输入,那么您需要一次读取和处理输入一个字符(getchar 加上一个状态机),或者将整行作为一个字符串读取,然后将其解析为一组单独的参数(本质上是重新发明argv)。

关于c - 跳过可选的 scanf 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43397798/

相关文章:

c - scanf 并非在每次循环迭代时都执行

c++ - 内存浪费?如果 main() 应该只返回 0 或 1,为什么 main 声明为 int 而不是 short int 甚至 char?

c - X86 CPU 如何将地址转换为 VGA 文本缓冲区等 IO?

python - 在使用 ctypes 加载时,在 C 中嵌入 Python 解释器会导致段错误

c++ - 单独的字符串和整数时 sscanf_s 访问冲突

c - 为什么 Xcode 似乎跳过了第二个 scanf() 调用?

c - 在 Solaris/Linux 中释放分配的内存

c - 在基于 `fork()` 的服务器中监听 UDS 和 TCP 套接字的正确方法是什么?

无法扫描C 中的文件

c - 分割长字符串