2017-04-13 50 views
-1

我正在为类进行分配。 这是关于一个基数转换器。它的工作方式如下,例如:convert 11010 2 16其中11010是要转换的编号,2是原始基本编号,16是目标编号。跳过可选的scanf参数

但我也想输入数字,而不是像-h求助等 如果是这样的附加选项,我想基数输入从即使被inputed被忽略(在216跳过)。

C可能吗?

+0

是作为命令行参数提供的值还是通过例如输入'scanf'? –

+0

教授希望获得命令行参数,但这对我来说是一个新课程,我不知道如何。他没有教它,但期望我们查看并在线学习。 –

+0

那你有没有看到'main'函数在任何地方都有参数?通常像'int main(int argc,char * argv [])'?你有没有想过这些'argc'和'argv'参数可能是什么?关于如何处理C程序中的命令行参数,有几千个教程。 –

回答

0

当提供某些选项时,忽略某些输入参数是相当普遍的,当然也是可行的。在之前解析所有输入参数,您可以对其中任何参数进行任何操作。首先检查你最重要的选项(在你的情况下,'-h')。如果给出了,就采取行动并忽视其他人甚至存在。指定程序的“帮助”参数通常只是printf的一段文本,然后立即退出。

如果您使用的是命令行参数,这与迭代到argv一样简单。如果您从控制台获取输入,则需要一次读取和处理输入一个字符(getchar加上状态机),或者将整行读取为一个字符串并将其解析为单个数组参数(基本上重塑argv)。