C如何读取逗号分隔的输入

use*_*240 2 c string file-io line

我想在scanf中读取以下输入:

10 0 y
2
2, 80, 40, 0
Run Code Online (Sandbox Code Playgroud)

这应该由scanf从单独的文件准备好.

我只需执行以下操作即可获得没有逗号的前两行:

scanf("%d %d %c %d", a1, a2, a3, c1, a4);
Run Code Online (Sandbox Code Playgroud)

我怎么能读取用逗号分隔的第三行并将它们存储在我的变量中?

Car*_*rum 8

您可以在scanf格式字符串中包含逗号:

int blinky, pinky, inky, clyde;
scanf("%d, %d, %d, %d", &blinky, &pinky, &inky, &clyde);
Run Code Online (Sandbox Code Playgroud)

以下是基于您的问题的完整示例:

#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;
}
Run Code Online (Sandbox Code Playgroud)

并建立和测试:

$ 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
Run Code Online (Sandbox Code Playgroud)

  • +1.我希望我能再次为了var-names = P而再次投票 (2认同)