<?xml version="1.0" encoding="utf-8"?>

<!--
 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 * Copyright (C) 2008 - INRIA
 * ...
 *
 * Copyright (C) 2012 - 2016 - Scilab Enterprises
 *
 * This file is hereby licensed under the terms of the GNU GPL v2.0,
 * pursuant to article 5.3.4 of the CeCILL v.2.1.
 * This file was originally licensed under the terms of the CeCILL v2.1,
 * and continues to be available under such terms.
 * For more information, see the COPYING file which you should have received
 * along with this program.
 *
 -->

<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="mfprintf" xml:lang="ja">

    <refnamediv>

        <refname>mfprintf</refname>

        <refpurpose>変換,整形し,ファイルにデータを書き込む</refpurpose>

    </refnamediv>

    <refsynopsisdiv>

        <title>呼び出し手順</title>

        <synopsis>mfprintf(fd, format, a1, ..., an);</synopsis>

    </refsynopsisdiv>

    <refsection>

        <title>引数</title>

        <variablelist>

            <varlistentry>

                <term>fd</term>

                <listitem>

                    <para>

                        スカラー, <function>mopen</function>で指定したファイル記述子

                        (正の整数).

                    </para>

                    <para>

                        <varname>fd</varname> が 0 の場合, stderr へのリダイレクション.

                    </para>

                    <para>

                        <varname>fd</varname>が 6 の場合, stdout へのリダイレクション.

                    </para>

                    <para>

                        古い仕様 :値 <literal>-1</literal> はデフォルトのファイル

                        ( すなわち直近にオープンされたファイル)を指します.

                    </para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>format</term>

                <listitem>

                    <para>

                        残りのオペランドを書き込む際に使用されるフォーマットを指定する

                        Scilab 文字列.

                        <varname>format</varname>オペランドはCの<function>printf</function>

                        のフォーマットオペランドの構文に可能な限り似せられています.

                    </para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>str</term>

                <listitem>

                    <para>文字列: スキャンされる文字列.</para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>a1, ..., an</term>

                <listitem>

                    <para>

                        formatパラメータに基づき変換,出力されるデータ.

                    </para>

                </listitem>

            </varlistentry>

        </variablelist>

    </refsection>

    <refsection>

        <title>説明</title>

        <para>

            <function>mfprintf</function> 関数は, C言語の<function>fprintf</function>関数への

            インターフェイスです.

        </para>

        <para>

            <function>mfprintf</function>関数は,整形されたオペランドを

            ファイル記述子<varname>fd</varname>で指定したファイルに書き込みます.

            引数のオペランドは,<varname>format</varname>オペランドの制御のもとで整形されます.

        </para>

        <para>

            この関数は数値の列ベクトルおよび文字列ベクトルを要素に関する

            明示的なループ処理を行うことなく出力する際に使用することができます.

            この場合,この関数は行に関する反復処理を行ないます.

            最も短いベクトルはフォーマットの反復回数を指定します.

        </para>

        <para>

            同じ型パラメータの一様なシーケンスは

            行列で置換することができます.

        </para>

    </refsection>

    <refsection>

        <title>例</title>

        <programlisting role="example"><![CDATA[
fd = mopen(TMPDIR+'/text.txt','wt');
mfprintf(fd,'hello %s %d.\n','world',1);
mfprintf(fd,'hello %s %d.\n','scilab',2);
mfprintf(fd,'This line is built with a column vector (26:28) %d.\n',[26:28].');
mfprintf(fd,'This line is built with a row vector (26:28) %d.\n',[26:28]);
A = rand(3,6);
mfprintf(fd,'This line is built with a matrix %.3f.\n',A);
mclose(fd);
if (isdef('editor') | (funptr('editor')<>0)) then
  editor(TMPDIR+'/text.txt')
end
mfprintf(0,'stderr output.\n');
mfprintf(6,'stdout output.\n');
 ]]></programlisting>

    </refsection>

    <refsection>

        <title>参照</title>

        <simplelist type="inline">

            <member>

                <link linkend="mclose">mclose</link>

            </member>

            <member>

                <link linkend="meof">meof</link>

            </member>

            <member>

                <link linkend="fprintfMat">fprintfMat</link>

            </member>

            <member>

                <link linkend="mfscanf">mfscanf</link>

            </member>

            <member>

                <link linkend="fscanfMat">fscanfMat</link>

            </member>

            <member>

                <link linkend="mget">mget</link>

            </member>

            <member>

                <link linkend="mgetstr">mgetstr</link>

            </member>

            <member>

                <link linkend="mopen">mopen</link>

            </member>

            <member>

                <link linkend="mprintf">mprintf</link>

            </member>

            <member>

                <link linkend="mput">mput</link>

            </member>

            <member>

                <link linkend="mputstr">mputstr</link>

            </member>

            <member>

                <link linkend="mscanf">mscanf</link>

            </member>

            <member>

                <link linkend="mseek">mseek</link>

            </member>

            <member>

                <link linkend="mtell">mtell</link>

            </member>

            <member>

                <link linkend="mdelete">mdelete</link>

            </member>

            <member>

                <link linkend="printf_conversion">printf_conversion</link>

            </member>

        </simplelist>

    </refsection>

</refentry>

