【发布时间】:2010-12-07 23:31:48
【问题描述】:
你好哈哈再次。 C- Unix 我正在阅读这样的内容:
a.out [23+10i]
sscanf(argv[count], "[%d%c%di]", &a, &operand1, &b);
我想分开如下: a=23 b=10 操作数='+' 但是我收到了 segfault(core dumped) 错误,我做错了什么?
顺便说一句,非常感谢你回答我所有愚蠢的问题
【问题讨论】:
-
count的值是多少?a、operand1和b的声明是什么? -
很难说,但打印出 argv[count] 以确保它是您想要的参数。
-
[是一个 shell 元字符,可能会导致您的参数不是您认为的那样。如果你在你的论点周围加上引号,你会得到相同的结果吗:./a.out "[23+10i]"? -
@Adam 不,即使有引号,它也会不断出现段错误。计数 = 1,我将其打印出来。 >$ a.out "[23+45i]" 命令行有1个参数:1:[23+45i] Segmentation Fault (core dumped)
标签: c command-line segmentation-fault scanf