关于sscanf的困惑

Jef*_*eff 2 c scanf

我想从一行文件中读取浮点数(以及之后的整数).当我调试它时,我可以看到它从文件中删除线条没有问题,但是当我尝试sscanf它时,我会得到垃圾.这是我的代码:

    while(fgets(line, 1000, file) != EOF)
    {
        //Get the first character of the line
        c = line[0];

        if(c == 'v')
        {
            sscanf(line, "%f", &v1);
            printf("%f", v1);
        }
    }
Run Code Online (Sandbox Code Playgroud)

存储在v1中的值是垃圾.为什么这不起作用,我如何从这一行中获得浮动和整数?

Ted*_*opp 5

你在sscanf的调用中包含了第一个字符(即'v'),因此调用失败并v1保持不变(其中包含垃圾).试试这个:

sscanf(line+1, "%f", &v1);
Run Code Online (Sandbox Code Playgroud)