用于读取格式化输入的scanf()
我试图找到问题的答案。我试过了 此代码使用gcc作为编译器,输出结果与预期不符用于读取格式化输入的scanf(),c,scanf,C,Scanf,我试图找到问题的答案。我试过了 此代码使用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 我只打印字符串s1,但它包含整个字符串。 为什么不通过将输入分成3个字符串来读取输入?不,scanf()不知道应该在逗
#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
我只打印字符串s1
,但它包含整个字符串。为什么不通过将输入分成3个字符串来读取输入?不,
scanf()
不知道应该在逗号处停止第一个字符串转换,因为字符串可以包含逗号
可以使用%[]
转换说明符执行此操作,使用%[^,]
包含除逗号以外的所有字符
abc,def,ghi