以下是代码:
// Latitude line edit
QLineEdit *lineEdit = new QLineEdit;
lineEdit->setInputMask( ">\N999999.99;_" );
但是,我收到编译器警告:未知转义序列'\ N' 和QLineEdit文本不包含'N'字符,仅包含'_'。 我究竟做错了什么? 比你所有人提前。
答案 0 :(得分:2)
在C ++中,有一组定义的转义序列可以将特殊字符存储到字符串中。
你很幸运\N
不属于这个集合,因为那时你甚至不会得到编译器警告;警告的内容可能会让你了解转义序列(不幸的是,它并没有)。
因为\
用于为转义序列添加前缀,所以不能直接使用它;它必须自行逃脱:
">\\N999999.99;_"
这会在输出中编译为单个>\N999999.99;_
。