c++中%[^,]是什么意思?

在从.txt文件中读取字符串时,使用%s会出现错误,但使用%[^,]则会正常。求高人指点%[^,]之意。万分感谢!

%[^,]是一个百分号后面跟着的是一个正则表达式,意思是说,读到以逗号作为开头的地方,而后将前面的信息作为一个字符串赋值给相应的变量,例如:
char w[]="123,456";
sscanf(w,"%[^,]",s);
这句话的意思就是从w中读取字符串,读到以逗号作为开头的地方结束
那么最终读到s中的内容就是“123”
这种读入方式在其他情况下同理
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-01-02
scanf的正则表达式之一。
一般我们是scanf("%s", xxxx),有时我们希望空格也输入进去,可以用scanf("%[^\n]", xxxx)
%[^\n]的意思就是以'\n'作为输入的结束标志。
同理%[^,]就是以','做输入的结束标志。
其它的如
%[a-z] 表示匹配a到z中任意字符
%[aB'] 匹配a、B、'中一员
%[^a] 匹配非a的任意字符

fscanf的用法基本一样。本回答被提问者采纳
第2个回答  2018-01-01
scanf的正则表达式之一。
一般我们是scanf("%s", xxxx),有时我们希望空格也输入进去,可以用scanf("%[^\n]", xxxx)
%[^\n]的意思就是以'\n'作为输入的结束标志。
同理%[^,]就是以','做输入的结束标志。
其它的如
%[a-z] 表示匹配a到z中任意字符
%[aB'] 匹配a、B、'中一员
%[^a] 匹配非a的任意字符 (此处有错误 应该是输入以a结束)

fscanf的用法基本一样。
相似回答