我有 ac 文件,这样我就可以将参数传递给:
./cfile [-size number]
例如
./cfile -size 22
这是此类文件的示例代码:
int main(int argc, char** argv) {
if (argv[1] != "-size") {
fprintf(stderr, "Wrong format");
return 1;
}
// get_number is some function that returns int value of number if number, NULL otherwise
if (get_number(argv[2]) == NULL) {
fprintf(stderr, "Wrong format");
return 1;
}
return 0;
}
然而,当我写
./cfile '-size' '22'
我找不到让 C 确定撇号不应该存在的方法。由于每个参数上的撇号,我想抛出一个错误,但 c 似乎将它们视为不存在。
有没有办法做到这一点?
引号由 shell 解释以分隔参数。它们甚至在您的程序看到它们之前就被删除了。
所以你的程序只会看到-size
for argv[1]
,而不是'-size'
。
此外,在比较字符串时,您需要使用strcmp
. 使用!=
or==
比较字符串实际上是比较指针值,这不是您想要的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句