問題タブ [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.
truncate - 数値を特定の桁数に切り捨てるフォーマット文字列
数値を特定の桁数に切り詰めるフォーマット文字列はありますか? たとえば、5 桁を超える数字は 3 桁に切り捨てます。
@Erik : %2d のような書式指定子は言語に固有のものですか? 実際にjavascriptで使いたい
c - gcc-Wformatがunsignedintのprintf%dについて警告しないのはなぜですか?
次のプログラムの動作は未定義です。
C99 7.19.6.1p8は、%dがint引数を期待していると述べています。
C99 7.19.6.1p9には、「引数が対応する変換仕様の正しい型でない場合、動作は 未定義です」と記載されています。
ただし、gcc -Wformat
(に含まれています-Wall
)は上記のプログラムについて文句を言いません、なぜですか?これはバグですか、それとも意図的な省略ですか?
gccのマンページから:
"printf"
およびなどの呼び出しをチェック"scanf"
して、指定された引数が指定されたフォーマット文字列に適切な型を持っていること、およびフォーマット文字列で指定された変換が意味をなすことを確認します。
objective-c - 文字列のフォーマットObjectiveC
私はこれを見つけました 。数値のようにフォーマット文字列を使用してNSStringを整列させることは可能ですか?
私は似たような仕事をしていますが、形式が逆です。
私のコードはこれです
しかし、結果はこれです
アップデート
このコードで動作するようになりました。
質問を更新
テキストが長すぎる場合はどうなりますか?
なりたい
c++ - クロスプラットフォームの FormatString
$1
この時点まで、私は FormatString を使用して、番号付き変数 ( 、など)を使用して多言語文字列をフォーマットしてきまし$2
たが、クロスプラットフォームの互換性はありません。
sprintf
同じことを行うクロスプラットフォームのような機能はありますか? メモリなどを割り当てる必要はありません。文字列内のさまざまな場所にある可能性のある番号付きの型付き疑似変数を処理できる必要があるだけです。
同様の機能を提供する場合は、Boost で問題ありません。
python - Gettext は、フォーマット指定子を使用した古いスタイルの python 文字列とは異なり、「python-format」で python フォーマット文字列にフラグを立てません。
gettext は、置換フィールドを持つ Python フォーマット文字列を正しく認識できないため、「python-format」としてフラグを立てていないようです。例えば
ただし、gettext は Python 文字列をフォーマット指定子で適切に識別し、そのようなソース文字列に「python-format」のフラグを立てます。たとえば、
xgettext
Django のツールを使用して Python フォーマット文字列の PO ファイルを生成しようとしmanage.py makemessages
ましたが、Python フォーマット文字列が「python-format」としてフラグ付けされているのがわかりませんでした。
また、http://www.gnu.org/software/gettext/manual/html_node/Python.htmlは、新しい Python フォーマット文字列について何も指定していません。
この問題の回避策を見つけるのを手伝ってください。
c++ - 書式文字列を iostream に送信するにはどうすればよいですか?
重複の可能性:
sprintf のような std::string フォーマット
c++ iostream クラスを printf のようなフォーマット文字列で使用できますか?
基本的に、私は次のようなことができるようにしたい:-
簡単に文字列ストリームを使用します。これを行う簡単な方法はありますか?
c - formatstring を使用して文字列を出力するにはどうすればよいですか?
より安全にコーディングする方法を学ぶために、フォーマット文字列の脆弱性に関するチュートリアルを進めています。これまでに作成したプログラムは次のとおりです。
私はこのように実行しています:
末尾に「41414141」が表示されます。これは、文字列の先頭にある AAAA です。ただし、代わりに「%s」を次のように使用すると:
セグメンテーション違反が発生します。誰かが私を正しい方向に向けることができますか?
textbox - 特定のフォーマット文字列に応じて、テキストボックスの幅を設定する方法は?
TextBox
特定のフォーマット文字列を使用してコンテンツを表示する があります。ボックスの幅は、テキストの表示に必要なスペースを正確に確保するように設定されています。この目的のために、書式設定されたテキストの幅を使用します。
これを行うと、テキストボックスはほぼ正しい幅になります。しかし、まだオフセットを追加する必要があり 12
ます。そうしないと、テキストの領域がいくつかのピクセルでトリミングされます。
12
試行錯誤で番号を取得しました。したがって、次の 2 つの疑問が生じます。
- なぜこのオフセットが必要なのですか? 失われた幅は (空白と境界線?) になりますか?
- ただ推測するよりも、適切なオフセットを取得するためのより良いアプローチはありますか?
c - Cでフォーマット文字列攻撃が発生するのはなぜですか?
フォーマットされたI/O関数が、提供された引数よりも多くの引数を予期している場合に、フォーマット文字列攻撃が発生することを私は知っています。
Cでは、
メモリ位置を読み取るための1つの例:
メモリ位置を上書きする別の例:
私の質問は:なぜこれが両方の場合に起こるのですか?対応する値を指定せずにフォーマットされた文字列に%xしかないのに、メモリにアドレスが出力されるのはなぜですか?そして、そのアドレスは正確には何ですか?私はそれが起こることを知っています、しかし実際に何が起こっているのですか?
上書きについても同様です。
c - フォーマット文字列攻撃
悪用される小さな C プログラムがあります。また、実行される攻撃の背後にあるロジックも理解しました。しかし、私が試している限り、それは私にとってはうまくいきません。
書式文字列 "printf(user_input);" を使用して、secret[0] のアドレスと値を出力するだけです。
「\x6e\xaf\xff\xff%x%x%x%x%s」のようなものを与えてみました。しかし、それは機能していません。任意の提案をいただければ幸いです。どうもありがとう。