有没有办法用scanf读取括号内的整数?
Is there a way to read integers inside brackets with scanf?
我想用 scanf 读取括号内的三个整数。
我尝试了一些代码,例如:1)%*c
、2)scanf("(%d, %d, %d)", &x, &y, &a);
...
#include <stdio.h>
int main()
{
int m, n, s, x, y, a;
scanf("%d %d",&m, &n );
scanf("%d", &s );
scanf("(%d, %d, %d)", &x, &y, &a);
printf("x é: %d\n y é: %d\n a é: %d\n", x, y, a);
return 0;
}
我期望输出:
12 23
2
(12, 34, 52)
成为:
x is: 12
y is: 34
a is: 52
但实际输出是:
x is: 1942163568
y is: 21945
a is: 1800188064
有两种方法。
首先如评论中所述。
方法一
scanf("(%d, %d, %d)", &x, &y, &a);
方法二
char str[100] = {'[=11=]'};
fgets(str, 99, stdin);
sscanf(str, "(%d, %d, %d)", &x, &y, &a);
在 "("
之前需要 space - 消耗 "2\n"
末尾的 '\n'
的东西。
建议在'('
、')'
、','
之前的格式中自由使用" "
来消耗可选的白色-space。 "%d"
已经消耗领先的白色-space.
// scanf("(%d, %d, %d)", &x, &y, &a);
if (scanf(" (%d ,%d ,%d )", &x, &y, &a) != 3) puts("Oops");
我想用 scanf 读取括号内的三个整数。
我尝试了一些代码,例如:1)%*c
、2)scanf("(%d, %d, %d)", &x, &y, &a);
...
#include <stdio.h>
int main()
{
int m, n, s, x, y, a;
scanf("%d %d",&m, &n );
scanf("%d", &s );
scanf("(%d, %d, %d)", &x, &y, &a);
printf("x é: %d\n y é: %d\n a é: %d\n", x, y, a);
return 0;
}
我期望输出:
12 23
2
(12, 34, 52)
成为:
x is: 12
y is: 34
a is: 52
但实际输出是:
x is: 1942163568
y is: 21945
a is: 1800188064
有两种方法。
首先如评论中所述。
方法一
scanf("(%d, %d, %d)", &x, &y, &a);
方法二
char str[100] = {'[=11=]'};
fgets(str, 99, stdin);
sscanf(str, "(%d, %d, %d)", &x, &y, &a);
在 "("
之前需要 space - 消耗 "2\n"
末尾的 '\n'
的东西。
建议在'('
、')'
、','
之前的格式中自由使用" "
来消耗可选的白色-space。 "%d"
已经消耗领先的白色-space.
// scanf("(%d, %d, %d)", &x, &y, &a);
if (scanf(" (%d ,%d ,%d )", &x, &y, &a) != 3) puts("Oops");