Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 我可以将命令行参数读取为二进制吗?_C_Command Line_Flags - Fatal编程技术网

C 我可以将命令行参数读取为二进制吗?

C 我可以将命令行参数读取为二进制吗?,c,command-line,flags,C,Command Line,Flags,是否可以将命令行参数读取为二进制数?如果是,如何进行 例如:。, /a-v 10010110 此选项允许用户从12个寄存器中选择要使用的寄存器。我希望用户通过需要读取的寄存器传递一个16位二进制数,使用标志1,否则使用平面0 这就是我的想法。如果这不是一个好主意,我如何在不混淆用户的情况下完成它?在命令行上传递的值是字符串。在程序内部,您可以选择任何方式处理字符串 如果您需要从0..15(或1..16)集合中获取一个位,最好获取该位的十进制数,而不是强制用户进行计数。您只需使用argv[2]或任

是否可以将命令行参数读取为二进制数?如果是,如何进行

例如:。,
/a-v 10010110

此选项允许用户从12个寄存器中选择要使用的寄存器。我希望用户通过需要读取的寄存器传递一个16位二进制数,使用标志
1
,否则使用平面
0


这就是我的想法。如果这不是一个好主意,我如何在不混淆用户的情况下完成它?

在命令行上传递的值是字符串。在程序内部,您可以选择任何方式处理字符串


如果您需要从0..15(或1..16)集合中获取一个位,最好获取该位的十进制数,而不是强制用户进行计数。您只需使用
argv[2]
或任何包含数字的索引,使用
atoi()
strtol()
等函数将其转换为数字
bitnum
(错误检查负值或大值的值),然后使用
1U命令行上传递的值是字符串。在程序内部,您可以选择任何方式处理字符串


如果您需要从0..15(或1..16)集合中获取一个位,最好获取该位的十进制数,而不是强制用户进行计数。您只需使用
argv[2]
或任何包含数字的索引,使用
atoi()
strtol()
等函数将其转换为一个数字
bitnum
(错误检查负值或大值的值),然后使用
1U命令行参数作为字符串传递给您的程序。在程序的参数解析部分,需要将字符串“10010110”转换为二进制表示形式。这是一个好主意,您可以传递任何您想要的命令行参数。只需在“帮助”菜单/文档中明确说明您的程序需要哪些类型的输入及其格式即可。另一种方法是,用户传递一个数字列表,如
2 3 5 8
,而不是尝试设置正确的位。我更喜欢写
12
,而不是
10000000000
:-)命令行参数作为字符串传递给程序。在程序的参数解析部分,需要将字符串“10010110”转换为二进制表示形式。这是一个好主意,您可以传递任何您想要的命令行参数。只需在“帮助”菜单/文档中明确说明您的程序需要哪些类型的输入及其格式即可。另一种方法是,用户传递一个数字列表,如
2 3 5 8
,而不是尝试设置正确的位。我更喜欢写
12
,而不是
10000000000
:-)