問題タブ [printf]

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.

0 投票する
5 に答える
13649 参照

c++ - double の丸め - .5 - sprintf

2dp に丸めるために次のコードを使用しています。

6.666 から 6.67 への丸めは正常に行われますが、5.555 の丸めでは正しく機能しません。5.55 を返しますが、(少なくとも私の意見では) 5.56 を返す必要があります。

次の桁が 5 のときに切り上げるにはどうすればよいですか? つまり、5.56 を返します。

編集:cinで5.555を入力すると、5.554999997として保存されるため、これが起こっていることに気付きました。

最初に 3 dp に、次に 2 dp に、2 段階で丸めます。他の(よりエレガントな)アイデアはありますか?

0 投票する
2 に答える
14541 参照

gcc - GCC属性「フォーマット」の使用方法は?

ここに小さなコードがあります:

Mac OS X Leopard で Xcode を実行して、GCC 4.0 でコンパイルしています。
-Wformat および -Wmissing-format-attribute が有効になっています。
このコードは、9 行目 ( への呼び出し) で警告を表示し、「format」属性を使用できることvprintfを示唆しています。MyPrintf

関数は「printf」フォーマット属性の候補になる可能性があります

したがって、この方法で属性を追加します(これが正しいかどうかはわかりません):

前の警告は消え、同じ警告が 16 行目 ( への呼び出し) に表示され、'format' 属性を使用できることがMyPrintf示唆されます。 だから私はこのように属性を追加します(今回はこれが正しいと確信しています):MyVariadicPrintf

そして、22 行目 ( への呼び出しMyVariadicPrintf)で予期される警告が表示されます。

フォーマットの引数が少なすぎます

  1. 私はこれを正しく行いましたか?
  2. MyPrintf宣言時に、属性部分を削除しても、22 行目で必要な警告が引き続き表示されることに気付きました。また、この属性部分で、インデックスを 1 から 2 に変更しても、警告やエラーが発生しないことにも気付きました。どちらが正しいで、この関数の属性の目的は何ですか?
  3. 次の関数を追加してMyVariadicPrintfT呼び出すと ( で特化char)、この関数で 'format' 属性を使用することを提案する警告が表示されます。format引数がテンプレート化された型に依存しているため、それは不可能だと思います。私は正しいですか?

    /li>

最新の gnu ドキュメントはgnu.orgにあります。
警告 オプションはセクション 3.8にあります (「-Wmissing-format-attribute」を探してください)。
関数の属性はセクション 6.30にあります ("format (archetype, string-index, first-to-check)" を探してください)。

ありがとう。

0 投票する
6 に答える
60321 参照

c - %*s 書式指定子の意味は何ですか?

私が維持しなければならないいくつかのコードで、フォーマット指定子を見ました%*s。これが何であり、なぜそれが使用されているのか誰か教えてもらえますか?

その使用例は次のようになります。

0 投票する
5 に答える
19529 参照

oracle - Oracle の「printf」に相当するもの

次の同等または代替はありますか?

Oracleにはprintfスタイルのフォーマットのようなものがありますか?

0 投票する
1 に答える
15336 参照

matlab - 改行なしで MATLAB からの情報を表示する

改行なしで MATLAB プログラムから情報を出力/表示する方法はありますか?

私の MATLAB プログラムは時々数値を出力します。数値を出力する間に、プログラムは他の多くのことを行います。これは主にある種の進行状況を示すための構成要素であり、ユーザーにとって読みやすくするために、毎回改行を入れない方がよいでしょう。これはおおよそ私が探しているものです:

プログラムからの次の出力は、以前と同じことをまだ行っている場合、同じ行になります。

disp、sprintf、および format に関するドキュメントを読みましたが、探しているものが見つかりませんでした。これは、それがないという意味ではありません。;)

0 投票する
3 に答える
6811 参照

c - C: printf() を介して出力される場合、double はどのくらいの長さになりますか

double 値から出力する文字列の正確な長さを指定する必要がありますが、出力を必要以上に制限したくありません。

printf() でフォーマットされた場合、6 桁の精度の double の最大長は?

printf("%X.6lg",doubleValue);具体的には、値が切り捨てられないようにするには、X にどの値を指定する必要がありますか?

長さについて具体的に説明する必要がある理由は、double 値の多数の文字列表現で構成される MPI 派生データ型を定義しており、ファイルの領域を MPI プロセス間で分割するために正確な長さを知る必要があるためです。

それが明確であることを願っています。答えてくれてありがとう。

0 投票する
3 に答える
14972 参照

php - sprintf() が何も出力しないのはなぜですか?

私はこれまでこれらの関数を使用したことがありませんでしたが、sprintf() について多くのことを読んだ後、それを知る必要があると判断しました。

そこで私は先に進み、次のことを行いました。

それは何も印刷しません。一方、printf() 関数を使用すると、次のようになります。

それは結果をうまく印刷します。では、これら 2 つの関数の違いと、sprintf() 関数を適切に使用するにはどうすればよいでしょうか?

0 投票する
2 に答える
474 参照

c++ - C++ での stdout の奇妙な動作

処理中にプログラムで UNIX 風車を表示したい。for ループがあり、反復ごとに printf 関数があります。

q は、反復回数に応じて、風車 (-\|/) 内の文字の 1 つです。

問題は、100回の反復で表示された行に2つの変更しかないように見え、すべての反復が完了するのに約1秒かかることです。

これの原因は何ですか?

風車の 2 つの可能な文字のみを含むループ全体を次に示します。

0 投票する
7 に答える
129545 参照

c++ - printf/sprintf に可変数の引数を渡す方法

テキストをフォーマットする「エラー」関数を保持するクラスがあります。可変数の引数を受け入れてから、printf を使用してそれらをフォーマットしたいと考えています。

例:

Error メソッドはパラメーターを受け取り、printf/sprintf を呼び出してフォーマットし、それに対して何かを行う必要があります。すべての書式設定を自分で書きたくないので、既存の書式設定を使用する方法を試してみることは理にかなっています。

0 投票する
4 に答える
6366 参照

c++ - printf の引数に関する質問です。C/C++

次のコード フラグメントがあります。

への呼び出しでエラー/警告が表示されない理由がわかりませんprintf警告は表示されますが、エラーは表示されず、プログラムは正常に実行されます。' ' が出力されます12
printfは 型の引数char *、つまり へのポインタを期待していますchar。したがって、 を宣言した場合char arr[3]arrは を含むメモリ ユニットのアドレスであるcharため、それを使用して呼び出すと、 char へのポインタ、つまりにprintf減衰します。 同様に、は3 文字の型配列を含むメモリ ユニットのアドレスであり、メモリ ユニットのアドレスには が含まれているため、に減衰し、問題になるはずです。char *
tabchartabchar **printfchar *.

誰かがこの問題を説明できますか?

補遺:

私が得る警告は次のとおりです。
a.c:6: warning: char format, different type arg (arg 2)