2012-01-24 2 views

答えて

3

、あなたは’Imageの出力形式が固定as specified in the ARMあるので、(そのリンクは、’Wide_Wide_Imageに実際だ、あなたはきちんとした書式設定をしたい場合、これはとてもうまく動作しない

Put_Line (“the answer is “ & Float’Image (F)); 

を言うことができます’Imageではなく、形式は同じです)。

あなたがGNATを使用している場合、あなたは(a)の文字と、(b)は、関係タイプを覚えるが保存されます

Put_Line (“the answer is “ & F'Img); 

として上記を書くことができ、それは、ポータブルではありません。

+0

私は両方の答えが気に入っていましたが、これは簡単でテストのために働いていました。 一方、私の教授は、これは努力の価値があるかどうかには同意できませんでしたが、私の好奇心のために、私はあなたの答えに感謝します。 – Kristian

4

あなたはエイダのFAQを好むかもしれない、part 9.9:私のような、素敵なワンライナーを書くことがしたい

NSLog(@"This is text, here's a variable %f", floatvar);

。完全を期すために、私はそれをここに引用:

標準パッケージTEXT_IOは、多くの機能を提供していますが、printfのような機能のための
要求は珍しいことではありません。

型形式のオブジェクトと いくつかのタイプのオブジェクトを取る 「&」演算子をオーバーロードすることによってprintfのような機能を生成することが可能である

(タッカータフトによって提案に基づく溶液) が適切な出力を実行した後、適切に進められたFormatを返します。残りの形式は、 を文字列に変換して戻すことができます。書式文字列の最後に残っているものを調べるか、最後に が残っているものを表示するために単純に印刷します。たとえば:

with Text_IO; 
package Formatted_Output is 
    type Format is 
    limited private; 

    function Fmt (Str : String) 
    return Format; 

    function "&" (Left : Format; Right : Integer) 
    return Format; 
    function "&" (Left : Format; Right : Float) 
    return Format; 
    function "&" (Left : Format; Right : String) 
    return Format; 
    ... -- other overloadings of "&" 

    procedure Print (Fmt : Format); 

    function To_String (Fmt : Format) 
    return String; 

private 
    ... 
end Formatted_Output; 

with Formatted_Output; use Formatted_Output; 
procedure Test is 
    X, Y : Float; 
begin 
    Print (Fmt("%d * %d = %d\n") & X & Y & X*Y); 
end Test; 

Formatted_Outputのプライベート部分と本体がリーダー;-)のための 運動として残っています。

"File:File_Type"パラメータは、(fprintfに類似したものを作成するために)必要ならば、 のオーバーロードに追加することができます。

この機能は、C++の "< <"ストリーム
オペレータによって提供される機能に類似しています。あなたはF : Float;を持っていると仮定すると

関連する問題