我想将以下输入读入scanf:
10 0 y
2
2, 80, 40, 0
这应该通过 scanf 从单独的文件中准备好。
通过执行以下操作,我可以得到没有逗号的前两行:
scanf("%d %d %c %d", a1, a2, a3, c1, a4);
我如何能够读取以逗号分隔的第三行并将其存储在我的变量中?
您可以只在scanf
格式字符串中包含逗号:
int blinky, pinky, inky, clyde;
scanf("%d, %d, %d, %d", &blinky, &pinky, &inky, &clyde);
这是基于您的问题的完整示例:
#include <stdio.h>
int main(void)
{
int a1, a2, a4;
int blinky, pinky, inky, clyde;
char c3;
scanf("%d %d %c %d %d, %d, %d, %d", &a1, &a2, &c3, &a4, &blinky, &pinky, &inky, &clyde);
printf("%d %d %c\n%d\n%d, %d, %d, %d\n", a1, a2, c3, a4, blinky, pinky, inky, clyde);
return 0;
}
并构建和测试:
$ cat input
10 0 y
2
2, 80, 40, 0
$ make example
cc example.c -o example
$ ./example < input
10 0 y
2
2, 80, 40, 0