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

C如何读取由逗号分隔的输入,c,string,file-io,line,C,String,File Io,Line,我想将以下输入读入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,

我想将以下输入读入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;
}
#包括
内部主(空)
{
int a1、a2、a4;
内特布林奇,小指,墨奇,克莱德;
炭c3;
scanf(“%d%d%c%d%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);
返回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
$cat输入
10年
2.
2, 80, 40, 0
$以身作则
cc-example.c-o示例
$/示例<输入
10年
2.
2, 80, 40, 0

+1。我希望我能再次投票支持var names=Pscanf(“%d%d%c%d%d%d,%d,%d”、&惩罚、&numberDropped、&stat、&numOfAssignments、&assignmentNumber、&studentScore、&weight、&daysLate);这就是我所做的,我可以打印除最后3个整数值以外的所有内容。4 80和0。@user2817240,那么你又做错了什么。我会在我的答案中加入一个完整的例子。好的,现在它起作用了。非常感谢你的帮助,卡尔。我只需要在第一个%d前面添加一个空格,否则它将无法工作。你只需要非常具体。为了澄清我最后的评论,在第一个%d之前我不需要空格。我本来就有一个,把我的程序搞砸了。我删除了它,然后按照您编写的内容进行操作,它成功了。这不是您真正的
scanf
示例,是吗?