0

コードは次のとおりです。

// Latitude line edit
QLineEdit *lineEdit = new QLineEdit;
lineEdit->setInputMask( ">\N999999.99;_" );

しかし、コンパイラの警告が表示されます: 不明なエスケープ シーケンス '\N' と QLineEdit テキストには 'N' 文字が含まれておらず、'_' のみが含まれています。私は何を間違っていますか?皆様、どうぞよろしくお願いいたします。

4

1 に答える 1

2

C++ では、特殊文字を文字列に格納するための一連の定義済みエスケープ シーケンスがあります。

\Nこのセットに含まれていない場合は、コンパイラの警告さえ表示されないため、実際には幸運です。警告のテキストから、エスケープ シーケンスについて学ぶことができたはずです(残念ながら、そうではありませんでした)。

はエスケープ シーケンスのプレフィックスとして使用されるため、\直接使用することはできません。それ自体をエスケープする必要があります。

">\\N999999.99;_"

これは、出力で単一>\N999999.99;_にコンパイルされます。

于 2014-03-19T12:48:12.447 に答える