کتابخانه‌ی استاندارد · پایه

قالب بندی fmt

تبدیل عدد و مقدار منطقی به متن، هم‌ترازی متن و ساختن رشته از یک قالب.

واردسازی قالب بندی
در این صفحه
  1. روال‌ها

وقتی می‌خواهید خروجی مرتب و خوانا بسازید، بسته‌ی قالب بندی به کارتان می‌آید. با آن عددها را به متن تبدیل می‌کنید، متن را در ستون‌هایی با پهنای ثابت می‌چینید و جمله‌ها را از یک قالب می‌سازید.

قالب‌ها ساده‌اند: هر {} در قالب با عضو بعدی وکتور مقدارها پر می‌شود. چون مقدارها رشته‌اند، عددها را پیش از آن با روال‌هایی مثل عدد صحیح به متن تبدیل کنید.

روال‌ها

عدد صحیح Int

روال عدد صحیح(i: صحیح۶۴): رشته
یک عدد صحیح را به متن تبدیل می‌کند، با علامت منفی اگر لازم باشد.
fmt-Int.salam
واردسازی قالب بندی

روال ریشه:
    سرچاپ "[" + قالب بندی.عدد صحیح(-۴۲) + "]"
    سرچاپ "[" + قالب بندی.عدد بی علامت(۴۲ برگردان طبیعی۶۴) + "]"
    سرچاپ "[" + قالب بندی.عدد اعشار(۳.۲۵) + "]"
    سرچاپ "[" + قالب بندی.عدد اعشار با دقت(۳.۱۴۱۵۹، ۲) + "]"
    سرچاپ "[" + قالب بندی.منطقی(درست) + "]"
    سرچاپ "[" + قالب بندی.شانزده(۲۵۵ برگردان طبیعی۶۴) + "]"
پایان
خروجی[-42] [42] [3.25] [3.14] [true] [ff]

عدد اعشار Float

روال عدد اعشار(f: اعشار۶۴): رشته
یک عدد اعشاری را به متن تبدیل می‌کند و رقم‌های بی‌فایده‌ی آخر را نمی‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: fmt-Int.salam

منطقی Bool

روال منطقی(b: منطقی): رشته
مقدار منطقی را به "true" یا "false" تبدیل می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: fmt-Int.salam

پرکردن چپ PadLeft

روال پرکردن چپ(s: رشته، width: صحیح): رشته
اگر متن از width کوتاه‌تر باشد، سمت چپش فاصله می‌گذارد تا به آن پهنا برسد. پهنا بر حسب حرف شمرده می‌شود، پس برای متن فارسی هم درست کار می‌کند. در ستون عددها، این روال عددها را از راست هم‌تراز می‌کند.
fmt-PadLeft.salam
واردسازی قالب بندی

روال ریشه:
    سرچاپ "[" + قالب بندی.پرکردن چپ("42"، ۶) + "]"
    سرچاپ "[" + قالب بندی.پرکردن راست("42"، ۶) + "]"
    سرچاپ "[" + قالب بندی.وسط چین("42"، ۶) + "]"
    سرچاپ "[" + قالب بندی.پرکردن چپ("سلام"، ۱۰) + "]"
پایان
خروجی[ 42] [42 ] [ 42 ] [ سلام]

پرکردن راست PadRight

روال پرکردن راست(s: رشته، width: صحیح): رشته
مثل پرکردن چپ، ولی فاصله‌ها را سمت راست متن می‌گذارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: fmt-PadLeft.salam

وسط چین Center

روال وسط چین(s: رشته، width: صحیح): رشته
متن را وسط پهنای داده‌شده می‌گذارد. اگر فاصله‌ها زوج نباشند، یک فاصله‌ی اضافه سمت راست می‌رود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: fmt-PadLeft.salam

قالب رشته Sprintf

روال قالب رشته(tmpl: رشته، args: وکتور<رشته>): رشته
قالب را برمی‌دارد و هر {} را به‌ترتیب با عضوهای وکتور args پر می‌کند. اگر مقدار کم بیاید، جای خالی‌ها تهی می‌مانند و مقدارهای اضافه نادیده گرفته می‌شوند.
fmt-Sprintf.salam
واردسازی قالب بندی

روال ریشه:
    ناپایا مقدارها := وکتور {} برگردان وکتور<رشته>
    دیرکن مقدارها.آزادکن()
    مقدارها.بیفزا("سارا")
    مقدارها.بیفزا(قالب بندی.عدد صحیح(۱۹))
    سرچاپ قالب بندی.قالب رشته("{} نمره‌ی {} گرفت."، مقدارها)
پایان
خروجیسارا نمره‌ی 19 گرفت.

قالب نوشتن Fprintf

روال قالب نوشتن(f: پرونده*، tmpl: رشته، args: وکتور<رشته>): صحیح
مثل قالب رشته، ولی نتیجه را مستقیم در پرونده‌ی باز می‌نویسد و تعداد بایت‌های نوشته‌شده را برمی‌گرداند.
fmt-Fprintf.salam
واردسازی قالب بندی
واردسازی ورودی خروجی
واردسازی سیستم عامل

روال ریشه:
    ناپایا مقدارها := وکتور {} برگردان وکتور<رشته>
    دیرکن مقدارها.آزادکن()
    مقدارها.بیفزا("۲۵")
    پ := سیستم عامل.بازکردن("دما.txt"، "wb")
    قالب بندی.قالب نوشتن(پ، "دمای امروز {} درجه است\n"، مقدارها)
    ورودی خروجی.بستن(پ)
    چاپ ورودی خروجی.خواندن پرونده("دما.txt")
پایان
خروجیدمای امروز ۲۵ درجه است

عدد اعشار با دقت FloatPrec

روال عدد اعشار با دقت(f: اعشار۶۴، prec: صحیح): رشته
عدد اعشاری را با تعداد رقم اعشار دلخواه به متن تبدیل می‌کند و عدد را گرد می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: fmt-Int.salam

عدد بی علامت Uint

روال عدد بی علامت(u: طبیعی۶۴): رشته
یک عدد بدون علامت ۶۴ بیتی را به متن تبدیل می‌کند؛ برای عددهای خیلی بزرگ که در صحیح۶۴ جا نمی‌شوند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: fmt-Int.salam

شانزده Hex

روال شانزده(u: طبیعی۶۴): رشته
عدد را در مبنای شانزده با حروف کوچک می‌نویسد، بدون پیشوند 0x.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: fmt-Int.salam