C++ 指定';]';C/C+中的字符+;scanf()扫描集
我想使用scanf家族函数来提取由']'分隔的字符串。 对于“')分隔符,可以执行以下操作:C++ 指定';]';C/C+中的字符+;scanf()扫描集,c++,c,format,scanf,C++,C,Format,Scanf,我想使用scanf家族函数来提取由']'分隔的字符串。 对于“')分隔符,可以执行以下操作: scanf(" %80[^)]", &buf); 但是通常如何在扫描集中包含“]”(而不仅仅是上面的否定集示例)?有什么可以逃避的方法吗 "[^\\]]" ?诀窍是将']'作为模式中的第一个字符: scanf(" %80[^]]", &buf); 诀窍是将']'作为模式中的第一个字符: scanf(" %80[^]]", &buf); 但这不是一个一般的答案——它可能在
scanf(" %80[^)]", &buf);
但是通常如何在扫描集中包含“]”(而不仅仅是上面的否定集示例)?有什么可以逃避的方法吗
"[^\\]]"
?诀窍是将']'作为模式中的第一个字符:
scanf(" %80[^]]", &buf);
诀窍是将']'作为模式中的第一个字符:
scanf(" %80[^]]", &buf);
但这不是一个一般的答案——它可能在这种特殊情况下有效,但在非否定的情况下,如何在扫描集中指定该字符?哦,我刚刚找到了该字符的规范,您是对的,扫描集中的第一个字符是专门处理的,即使在非否定的情况下,它也会接受]字符。定义这样一个特性当然感觉有点“黑客”!!但这不是一个一般的答案——它可能在这种特殊情况下有效,但在非否定的情况下,如何在扫描集中指定该字符?哦,我刚刚找到了该字符的规范,您是对的,扫描集中的第一个字符是专门处理的,即使在非否定的情况下,它也会接受]字符。定义这样一个特性当然感觉有点“黑客”!!