使用C 中的scanf()函数处理空格

我有以下问题。 我想以下列格式扫描scanf中的三个点: {[4;-1],[7;1.5],[4;4]} 。 我的代码如下所示:

scanf("{[%lf;%lf],[%lf;%lf],[%lf;%lf]}", &a1, &a2, &b1, &b2, &c1, &c2)

现在,我实际上正在测试这是否正确转换为进一步使用它。 但我想允许用户输入这样的东西

{ [ 4 ; -1 ] , [ 7 ; 1.5 ] , [ 4 ; 4 ] }

甚至

  { [ 4 ; -1 ] , [ 7 ; 1.5 ] , [ 4 ; 4 ] } 

所以scanf()仍然可以给我6个正确的转换。 我该怎么办?

为了允许白色空间,每个非白色空间之前都有一个空白区域。

 // "{[%lf;%lf],[%lf;%lf],[%lf;%lf]}" " { [%lf ;%lf ] , [%lf ;%lf ] , [%lf ;%lf ] }" 

代码也可以在"%lf"之前添加一个空格,但这不会改变function,因为该说明符已经消耗了可选的前导空格。

 " { [ %lf ; %lf ] , [ %lf ; %lf ] , [ %lf ; %lf ] }"