在scanf()中单独输入吗?

时间:2018-10-06 16:47:58

标签: c scanf

我想将通过scanf()输入的5位数字分成三个不同的变量。第一个变量应具有第一位数字,第二个变量应具有后两位数字,而第三个变量应具有后两位数字。

我在想这样的事情:

int num1;
int num2;
int num3;
scanf(%1d%2d%2d, &num1, &num2, &num3);

但是,这不起作用:它将后两位数字分配给每个变量。

有没有办法在扫描完所有5位数字后不分隔数字?

1 个答案:

答案 0 :(得分:3)

更改此:

scanf(%1d%2d%2d, &num1, &num2, &num3);

对此:

scanf("%1d%2d%2d", &num1, &num2, &num3);

因为您忘记使用双引号。

请参见以下示例:

#include <stdio.h>

int main(void) {
    int num1, num2, num3;
    scanf("%1d%2d%2d", &num1, &num2, &num3);
    printf("%d %d %d\n", num1 ,num2, num3);
    return 0;
}

输出:

> 12345
1 23 45

在此 Live Demo

中亲自查看