这是我的 C 代码
#include "stdio.h"
int main()
{
int minx, x;
printf("Enter two ints: ");
scanf( "%d%d", &minx, &x);
printf("You wrote: %d %d", minx, x);
}
当我的输入为 13 时,我预计输出为 1 3。
这不是 scanf 的工作原理吗,在 %d%d
中,它应该期望 2 位不带空格的数字,这是我用 13 给出的,所以期望将 minx 设为 1 并将 x 设为 3,但它不起作用。当我将输入从 13 更改为 1 3 时,它会输出 1 3。但是 scanf 是 %d%d
格式,而不是 %d %d
格式,那么为什么它在这里接受空格字符呢?当输入为 1 3 时,我期望输出为 1,而不是 1 3。空格字符在这里起什么作用,它实际上有什么作用?
最佳答案
当您使用 scanf
以 %d
格式输入数字时,它会读取任意位数的整数 。当您有连续的 %d%d
时,它将读取两个任意位数的整数。这正是您所看到的。
如果您只想读取每个整数的单个数字,则必须指定1
作为输入(字段)宽度!这将执行您想要的操作:
scanf("%1d%1d", &minx, &x);
关于c - C 中使用 scanf() 分配多个变量时空格字符的作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58400771/