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

时间:2018-10-29 00:03:54

标签: 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次正确的转换。我该怎么办?

1 个答案:

答案 0 :(得分:2)

要留有空格,请在每个非空格之前添加一个空格。

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

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

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