scanf(%f %f)和scanf(%f ,%f)有什么区别
时间: 2024-10-21 19:01:20 浏览: 11
41-STM32F429_STDIO_OUTPUT.7z
`scanf()` 函数是 C 语言中的标准输入流函数,用于从标准输入设备(通常是键盘)读取数据并将其存储到相应的变量中。格式字符串中的 `%f` 表示要读取一个浮点数。
在您的例子中:
`scanf(%f %f)` 和 `scanf(%.f , %.f)` 的主要区别在于分隔符的位置:
1. `scanf(%f %f)`:这里的分号(`;`)被用作分隔符,表示要连续读取两个浮点数。这意味着当你按下回车键后,第一个 `%f` 将读取一个浮点数,然后跳过分号,开始读取第二个 `%f` 后的值。如果这两个输入是空格或换行分隔的,这将会正常工作。
2. `scanf(%.f , %.f)`:这个写法有一个小错误,应该是 `scanf("%f, %f")` 或者 `scanf("%.f", "%.f")`,其中逗号(`,`)被用作分隔符。同样地,这个格式会期望用户输入两个数值,每个数值后面跟着一个逗号。如果用户没有正确提供这种格式的输入,如直接回车,那么 scanf 可能无法正确识别并读取所有的值。
所以正确的写法应该是使用逗号而非分号。如果你使用了分号,记得给每个浮点数之间加上适当的分隔符。如果不明确指定分隔符,scanf 通常会默认使用空格作为分隔符。例如,如果你想让用户输入两个数字,每行一个,应该这样写:
```c
float num1, num2;
scanf("%f\n%f\n", &num1, &num2);
```
这里使用 `\n` 是为了确保每次只读取一行输入,避免意外读取下一个输入行。
阅读全文