問題タブ [format-string]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - シェルスクリプト 16 進カウンター
シェル スクリプトに問題があります。
プログラム m4 を別の種類の文字列で実行したいので、次のスクリプトを書き留めました。
10 から FD まで 16 進数でカウントし、この値を文字列に入れます。次のエラーが表示されます。
ValueError: invalid \x escape
最初の質問: これは本当のエラーですか、それとも単なる警告ですか? 2 番目の質問: アドレスのすべての値が文字列に表示されるはずの 2 文字で構成されているのに、エラーが表示されるのはなぜですか?
objective-c - コア データ述語「フォーマット文字列を解析できません」
NSManagedObjects
他のオブジェクトと特定の関係を持つセットを取得しようとしています。
だから私は4つの管理対象オブジェクトを持っています:UserPick
、、、、。UserPick は、 、、 と個別に一対一の関係にあります。特定の , andを持つすべての を見つける必要がありますが、述語を正しく構造化できないようです:Game
Group
User
Game
Group
User
UserPick
Game
Group
User
私はもう試した:
と:
最後に:
考えられるあらゆる組み合わせで%@
andを使用してみました。%K
私が今までに返すのは: NSPredicate cannot parse format string
. これどうやってするの?
.net - .NET double 形式の文字列: 完全な小数点と桁区切り記号を取得するにはどうすればよいですか?
値がDouble
あり、フォーマット文字列を見つける必要があります。これは、この値を double 値の小数点以下の桁数と桁区切り記号で変換します。
たとえば、値が 1000000.1256 だとします。フォーマット文字列を使用しない場合、デフォルトの文字列には完全な 10 進数 (4 桁) が含まれますが、3 桁区切り記号 ( 1000000.1256
) は含まれません。標準の書式文字列「N」を使用すると、出力は1,000,000.13
になります。つまり、デフォルトで 2 つの小数を使用し、丸めを行います。しかし、丸めを実行したくありません。表示したいです1,000,000.1256
。また、数値の小数点以下の桁数がわからないことに注意してください。そのため、2、4、またはその他のより大きな小数点以下の桁数ではなく、「完全な」小数点を表示したいと言いました。カスタマイズ文字列 "#,#.##########" を使用してこのようにできることを知っているので、小数点以下 10 桁まで表示され、数字が 10 桁を超える可能性はほとんどありません。しかし、これが唯一/最良の方法ですか?
c - snprintfでこれまでに書いた文字
最近、確認したい奇妙なケースに気付きました。
SUS により%n
、フォーマット文字列の for は、int
出力に書き込まれるバイト数にそれぞれ設定されます。さらに、 forsnprintf(dest, 3, "abcd")
はdest
を指し"ab\0"
ます。なんで?n (n = 3) バイト以下が出力 (dest
バッファー) に書き込まれるためです。
私はコードのためにそれを推測しました:
written
2 に設定されます (null 終了はカウントから除外されます)。しかし、GCC 4.8.1 を使用して作成したテストでは、written
5 に設定されていました。標準を誤解していましたか? バグですか?未定義の動作ですか?
編集:
@wildplasser 氏は次のように述べています。
... フォーマット文字列の %n の動作は、未定義または実装定義の可能性があります ...
と
... 実装では、完全なフォーマット文字列 (%n を含む) の処理をシミュレートする必要があります ...
@パーは言った:
written
が検出された時点で書き込まれる文字数が 5 であるためです%n
。これは正しい動作です。 末尾の null を引いた文字snprintf
までのみコピーします ...size
と:
これを見る別の方法は、最大 2 文字しか処理されなかった場合でも遭遇しなかったであろうということです。そのため、無効な値を持つことが
%n
予想されます...written
と:
... 文字列全体が
printf()
ルールによって処理され、次にmax-length が適用されます ...
それが標準、標準草案、または何らかの公式ソースであることを確認できますか?
c - long のサイズに基づいて sprintf フォーマット文字列を変更する方法
uint64_t
と を使用して、16 進文字列からいくつかの値を読み込みたいと思いprintf
ますscanf
。
私が使用しているすべてのプラットフォームでlong
orのサイズが同じであるとは限らlong long
ないため、次のようなフォーマット文字列を使用する"%llx"
と、long long が 128 ビットのプラットフォームでは警告が"%lx"
表示され、long long が 64 ビット (および long long より小さい) のプラットフォームでは警告が表示されます。 )。
私が最初に考えたのは、フォーマット文字列をマクロで定義することでしたが、sizeof はマクロ式ではサポートされていません。
できれば警告なしで、どのプラットフォームでも機能するようにフォーマット文字列を定義する方法はありますか?
python - Pythonで変数の値をリークする方法
ちょっとみんな、この生の入力を悪用して、プログラム内から変数「非表示」の値をリークする方法はありますか? つまり、入力だけでコード行を実行できますか? プログラムを攻撃するフォーマット文字列を試しましたが、うまくいきませんでした。注: コードは変更できません。
助言がありますか?