これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド printfposix です。
プログラム:
NAME
printf — フォーマットされた出力を書く
SYNOPSIS
printf 形式でアーカイブしたプロジェクトを保存します. [引数...]
DESCRIPTION
当学校区の printf ユーティリティは、フォーマットされたオペランドを標準出力に書き込みます。 の 引数
オペランドは、 形式でアーカイブしたプロジェクトを保存します. オペランド。
OPTIONS
なし。
オペランド
次のオペランドがサポートされます。
形式でアーカイブしたプロジェクトを保存します. 残りのオペランドを書き込むために使用する形式を説明する文字列。 を参照してください
拡張説明セクション。
引数 の制御下で、標準出力に書き込まれる文字列。 形式でアーカイブしたプロジェクトを保存します.。 見る
「拡張説明」セクション。
標準入力
使用されていない。
入力 ファイル
なし。
ENVIRONMENT 変数
次の環境変数は、の実行に影響を与えます。 printf:
言語 設定されていない、または設定されていない国際化変数のデフォルト値を指定します
ヌル。 (POSIX.1‐2008の基本定義ボリュームを参照してください。 セクション 8.2,
国際化 変数 国際化変数の優先順位
ロケールカテゴリの値を決定するために使用されます。)
LC_ALL 空でない文字列値に設定されている場合は、他のすべての値を上書きします
国際化変数。
LC_CTYPE テキストデータのバイトシーケンスを解釈するためのロケールを決定します
文字として(たとえば、のマルチバイト文字ではなくシングルバイト
引数)。
LC_MESSAGES
の形式と内容に影響を与えるために使用する必要があるロケールを決定します
標準エラーに書き込まれる診断メッセージ。
LC_NUMERIC
数値書式設定のロケールを決定します。 の形式に影響を与えるものとします。
を使用して書かれた数字 e, E, f, g, G 変換指定子文字 (if
サポートされています)。
NLSパス の処理のためのメッセージカタログの場所を決定します LC_MESSAGES.
非同期 イベント
デフォルト。
標準出力
詳細説明セクションを参照してください。
標準
標準エラーは、診断メッセージにのみ使用されます。
出力 ファイル
なし。
拡張済み DESCRIPTION
当学校区の 形式でアーカイブしたプロジェクトを保存します. オペランドは、 形式でアーカイブしたプロジェクトを保存します. 基本定義に記述されている文字列
POSIX.1‐2008のボリューム、 章 5, File フォーマット 表記法 以下の例外があります。
1.A フォーマット文字列内、変換のフラグ以外のコンテキスト内
仕様では、出力にコピーされる通常の文字として扱われます。
2。 A 'フォーマット文字列内の ' 文字は、 '' 文字としてではなく、
.
3. 基本定義のボリュームに示されているエスケープ シーケンスに加えて、
POSIX.1‐2008、 章 5, File フォーマット 表記法 ('\\', '\NS', '\NS', '\NS', '\ n', '\NS',
'\t', '\ v'), 「\ddd」ここで、 DDD は、XNUMX 桁、XNUMX 桁、または XNUMX 桁の XNUMX 進数であり、
XNUMX 進数で指定された数値のバイトとして書き込まれます。
4. 実装は、 d or u 変換
指定子で指定されていない文字 形式でアーカイブしたプロジェクトを保存します. オペランド。
5. 実装は、からの出力に先行してはならない o ゼロを含む変換指定子
によって指定されていない 形式でアーカイブしたプロジェクトを保存します. オペランド。
6。 ザ a, A, e, E, f, F, g, G 変換指定子をサポートする必要はありません。
7. 追加の変換指定子文字、 b、以下のようにサポートされます。 の
引数は、次の内容を含む文字列とみなされます。 -エスケープシーケンス。
次の-エスケープ シーケンスがサポートされます。
-- POSIX.1-2008 の Base Definitions ボリュームにリストされているエスケープ シーケンス、
章 5, File フォーマット 表記法 ('\\', '\NS', '\NS', '\NS', '\ n', '\NS', '\t', '\ v'),
それらが表す文字に変換されます
-- 「\0ddd」ここで、 DDD は、XNUMX、XNUMX、XNUMX、または XNUMX 桁の XNUMX 進数です。
XNUMX進数で指定された数値でバイトに変換
-- '\c'、これは書かれてはならず、 printf 残りを無視する
それを含む文字列オペランド内の文字、残りの文字列オペランド、および
内の追加の文字 形式でアーカイブしたプロジェクトを保存します. オペランド
の解釈その後に他の文字列が続きます
不特定。
変換された文字列のバイトは、文字列の終わりまで書き込まれるか、
精度仕様で指定されたバイト数に達しました。 精度なら
が省略された場合は、無限とみなされ、末尾までのすべてのバイトが返されます。
変換された文字列が書き込まれます。
8. 引数を使用する変換仕様ごとに、次の引数のオペランド
は評価され、変換に適切な型に変換されます。
以下に指定します。
9。 ザ 形式でアーカイブしたプロジェクトを保存します. オペランドは引数を満たすために必要なだけ再利用されます。
オペランド。 余分なもの c or s 変換指定子は null であるかのように評価されます。
文字列引数が指定されました。 その他の追加の変換仕様は次のとおりです。
引数がゼロであるかのように評価されます。 もし 形式でアーカイブしたプロジェクトを保存します. オペランドには no が含まれます
変換仕様と 引数 オペランドが存在し、結果は
不特定。
10. 文字列が 形式でアーカイブしたプロジェクトを保存します. オペランドは a で始まります '%' キャラクターですが、そうです
有効な変換仕様を形成しない場合、動作は規定されていません。
11. に対する反論 c 変換指定子には、XNUMX 個以上の文字列を指定できます。
バイト。 XNUMX つ以上のバイトが含まれる場合、最初のバイトが書き込まれ、残りのバイトが書き込まれます。
追加のバイトは無視されます。 引数が空の文字列の場合、
何も書き込まれないか、NULL バイトが書き込まれるかは未指定です。
当学校区の 引数 対応する変換が行われる場合、オペランドは文字列として扱われます。
指定子は b, cまたは s、によって評価されるものとします。 ストロッド() 関数
対応する変換指定子は a, A, e, E, f, F, gまたは G。 それ以外の場合は、
ISO C 標準で記述されているように、接尾辞のない C 整数定数として評価されます。
次の拡張機能:
* リードまたはマイナス記号も許可されます。
* 先頭文字が一重引用符または二重引用符の場合、値は
単一引用符に続く文字の基になるコードセットの数値または
二重引用符。
* 接尾辞付きの整数定数が許可される場合があります。
引数オペランドを適切な内部値に完全に変換できない場合
対応する変換仕様に応じて、診断メッセージが書き込まれます。
標準エラーとなり、ユーティリティは終了ステータス XNUMX で終了せず、続行します。
残りのオペランドを処理し、その時点で累積された値を書き込むものとします。
標準出力にエラーが検出されました。
引数オペランドが完全に使用されていない場合は、エラーとはみなされません。 c or s
変換。
EXIT ステータス
次の終了値が返されます。
0正常に完了しました。
> 0エラーが発生しました。
結果 OF エラー
デフォルト。
当学校区の フォロー中 セクション 有益です。
お申込み USAGE
の浮動小数点書式変換仕様 printf()は不要です
シェル内のすべての演算は整数演算であるためです。 の awk ユーティリティが実行します
浮動小数点計算をサポートし、独自の浮動小数点計算を提供します。 printf 関数。 ザ bc ユーティリティ缶
任意精度の浮動小数点演算を実行しますが、広範な演算は提供しません
フォーマット機能。 (これ printf ユーティリティは実際にはフォーマットに使用できません bc 出力;
任意の精度はサポートされていません。)実装では、
拡張機能としての浮動小数点変換。
このことに注意してください printf のようなユーティリティ printf() システムインターフェイスで定義された関数
基になっている POSIX.1‐2008 のボリュームでは、特に対処するための規定はありません。
使用時のマルチバイト文字 %c 変換指定または精度が
に指定されている %b or %s コンバージョン仕様。 アプリケーションは非常に
マルチバイト文字が含まれている場合、これらの機能のいずれかを使用する場合は注意してください。
キャラクターセット。
フィールド幅と
として指定する精度 「*」 から 「*」 で直接置き換えることができます 形式でアーカイブしたプロジェクトを保存します.
シェル変数置換を使用したオペランド。 実装でもこの機能を提供できます
彼らが希望する場合は、拡張機能として。
ISO C 標準で定義されている XNUMX 進文字定数は、ISO C 標準では認識されません。
形式でアーカイブしたプロジェクトを保存します. 定数の終わりを検出する一貫した方法がないためです。 XNUMX 進数
文字定数は、最大で XNUMX 桁の XNUMX 進数に制限されていますが、XNUMX 進数の文字は
定数は、XNUMX 進数以外の文字でのみ終了します。 ISO C 規格では、
「##」 連結演算子を使用すると、定数を終了し、その後に
書き込む XNUMX 進文字。 シェルでは、連結は printf
ユーティリティには XNUMX 進定数の終わりを解析する機会があります。
当学校区の %b 変換仕様は ISO C 標準の一部ではありません。 ここに追加されました
ポータブルな処理方法として-エスケープは指定どおりに文字列オペランドに展開されます
を通じて、タンピングされたコーヒーベッドの上から均一にフィルターバスケットの内の粉に浸透していきます。 echo ユーティリティ。 「アプリケーションの使用法」セクションも参照してください。 echo 使い方については printf
すべての従来のバージョンの代替として echo ユーティリティ。
引数が対応する変換仕様に対して正しく解析できない場合、
printf エラーを報告するにはユーティリティが必要です。 したがって、オーバーフローと無関係
数値変換に使用される引数の末尾の文字が報告されます。
エラーとして。
例
ユーザーに警告し、一連のプロンプトを印刷して読むには:
printf 「\aお願いします 埋める in 次のとおりです。 \n名前: "
read 名
printf "電話 数: "
read 電話
ファイルから正解と不正解のリストを読み取るには、パーセンテージを計算します
正しく印刷してください。 数値は右寄せされ、単一の文字で区切られます。
。 パーセンテージは小数点以下 XNUMX 桁までの精度で表記されます。
while read 右 間違った ; do
パーセント=$(エコー "scale=1;($right*100)/($right+$wrong)" | 紀元前)
printf "%2d 右\t%2d 間違っています\t(%s%%)\n" \
$right $間違っています $パーセント
行われ < データベースファイル
コマンド:
printf 「%5d%4d\n」 1 21 321 4321 54321
次を生成する:
1 21
3214321
54321 0
なお、 形式でアーカイブしたプロジェクトを保存します. オペランドは、指定された文字列をすべて出力するために XNUMX 回使用され、
その '0' によって供給されました printf 最後を満たすために %4d 変換仕様です。
当学校区の printf ユーティリティは、変換エラーが検出されたときにユーザーに通知する必要があります
数値出力を生成するとき。 したがって、次の結果が期待されます
32 ビットの XNUMX の補数の整数を使用した実装 %d として指定されます 形式でアーカイブしたプロジェクトを保存します.
オペランド:
┌───────┬───────┬───────── ───────────┐
││ スタンダード ││
│ 引数 │ 出力 │ 診断的 出力 │
├───────┼───────┼─────────── ───────────┤
│5a │ 5 │ printf: "5a" が完全に変換されていません │
│9999999999 │ 2147483647 │ printf: "9999999999" 算術オーバーフロー │
│−9999999999 │ −2147483648 │ printf: "−9999999999" 算術オーバーフロー │
│ABC │ 0 │ printf: "ABC" 期待される数値 │
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ───────────┘
診断メッセージの形式は指定されていませんが、これらの例は診断メッセージのタイプを示しています。
報告すべき情報。 標準出力に表示される値は何であるかに注意してください。
からの戻り値として期待されます ストトル() システムで定義されている関数
POSIX.1‐2008のインターフェース編。 間に同様の対応が存在する %u
ストラトゥール()および %e, %f, %g (実装が浮動小数点変換をサポートしている場合)
ストロッド()。
基礎となるコードセットとして ISO/IEC 646:1991 標準を使用するロケールでは、コマンド:
printf 「%d\n」 3 +3 -3 '3 「+3」 「'−3」
次を生成する:
3 定数3の数値
3 定数3の数値
−3 定数の数値 −3
51 文字の数値 '3' ISO/IEC 646:1991 標準コードセットで
43 文字の数値 「+」 ISO/IEC 646:1991 標準コードセットで
45 文字の数値 '−' ISO/IEC 646:1991 標準コードセットで
マルチバイト文字を含むロケールでは、文字の値は次のように意図されていることに注意してください。
と同等の値になります。 wchar_t 説明されているようなキャラクターの表現
POSIX.1-2008 の System Interfaces ボリュームに記載。
理論的根拠
当学校区の printf 歴史的に提供されてきた機能を提供するためにユーティリティが追加されました
by echo。 ただし、さまざまなバージョンの相容れない違いのため、 echo
現存していますが、このバージョンには特別な機能がほとんどなく、それらはこの新しい機能に残されています。 printf ユーティリティ、
これは第 XNUMX 版のシステムに基づいています。
EXTENDED DESCRIPTION セクションはほぼ正確に一致します。 printfISO C の () 関数
Base ではファイル形式の表記法で説明されていますが、
POSIX.1‐2008の定義ボリューム、 章 5, File フォーマット 表記法.
この標準の以前のバージョンでは、次のすべての変換に対する引数が指定されていました。
b, c, s は同じ方法で評価されました (C 定数として、ただし例外が記載されています)。
浮動小数点変換をサポートする実装については、浮動小数点変換をサポートするかどうかは明確ではありませんでした。
整数変換は整数定数のみを受け入れる必要があり、浮動小数点変換は必要です
浮動小数点定数のみを受け入れるか、または両方のタイプの変換を受け入れるかどうか
両方のタイプの定数。 また、それらを区別しないことにより、
浮動小数点変換に適用される先頭の一重引用符または二重引用符に
ただし、これは、まだ提供されていないアプリケーションには有用な機能を提供しませんでした。
整数変換で利用できます。 現在の標準は、状況を次のように明確にしています。
浮動小数点変換の引数が次のように評価されるように指定する
ストロッド() であり、整数変換の引数は C 整数定数として評価されます。
先頭の一重引用符と二重引用符の特別な扱いは、
整数変換。
未来 道順
なし。
onworks.net サービスを使用してオンラインで printfposix を使用する