float A, B; char str[] = "A0.5B0.7"; sscanf(str, "%s%f%s%f", &A, &B); printf("A = %f, B = %f", A, B);
时间: 2024-05-05 14:22:14 浏览: 51
Python字符串格式化%s%d%f详解
这段代码有两个问题:
1. `%s` 格式化字符串会读取字符串中的一段字符,直到遇到第一个空格或者换行符为止。因此,这里 `%s` 会读取 `A0.5B0.7` 中的 `A0.5B0.7`,而不是单独的 `A`。
2. `%f` 格式化字符串会读取浮点数,但是需要传递一个指向浮点数变量的地址。因此,这里应该传递 `&A` 和 `&B`,而不是 `A` 和 `B`。
正确的代码应该是这样的:
```
float A, B;
char str[] = "A0.5B0.7";
sscanf(str, "A%fB%f", &A, &B);
printf("A = %f, B = %f", A, B);
```
这样就可以正确地读取 `A` 和 `B` 的值了。注意,这里把格式化字符串中的 `A` 和 `B` 直接写入了字符串中,而不是在运行时动态生成格式化字符串。
阅读全文