scanf()用于读取格式化输入

时间:2014-04-15 15:08:16

标签: c scanf

我正在尝试解决this问题。我试过了 这段代码用gcc作为编译器,输出不是预期的。

#include <stdio.h>

int main(void)
{

    char s1[10],s2[10],s3[10];
    scanf("%s,%s,%s ",s1,s2,s3);
    printf("%s\n",s1);

}

输入

abc,def,ghi

输出

abc,def,ghi

我只打印字符串s1,但它有整个字符串 为什么不通过将输入分成3个字符串来scanf()以这种方式读取输入?

1 个答案:

答案 0 :(得分:2)

不,scanf()不知道它应该以逗号停止第一个字符串转换,因为字符串可以包含逗号。

您可以使用%[]转化说明符执行此操作,使用%[^,]包含逗号以外的所有字符。