假设我们正在读取一个格式化的文件,以便每行包含两个浮点数,第一个浮点数占用该行的前7个字符,第二个浮点数占用该行的后7个字符。例如:
1.111222.222
333.333 44.444
鉴于此示例代码
float a, b;
sscanf(" 1.111222.222", "%7f%7f", &a, &b);
printf("%f %f\n", a, b);
以下是输出:
1.111220 2.222000
7个字符不会开始向第一个浮点计数,直到跳过空格。有没有办法解析这些浮点数并将空格作为浮点长度的一部分包含在内?
答案 0 :(得分:1)
我能想到的最好的方法是以字符串形式读取浮点数%7[^\n]
,然后将该输入解析为浮点数。
float a, b;
char a_buff[7 + 1];
char b_buff[7 + 1];
sscanf(" 1.111222.222", "%7[^\n]%7[^\n]", a_buff, b_buff);
sscanf(a_buff, "%f", &a);
sscanf(b_buff, "%f", &b);
printf("%f %f\n", a, b);