Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::print

      From cppreference.com
      <cpp‎ |io
       
       
       
       
      Defined in header<print>
      template<class...Args>
      void print(std::format_string<Args...> fmt, Args&&...args);
      (1)(since C++23)
      template<class...Args>

      void print(std::FILE* stream,

                 std::format_string<Args...> fmt, Args&&...args);
      (2)(since C++23)

      Formatargs according to the format stringfmt, and print the result to an output stream.

      1) Equivalent tostd::print(stdout, fmt,std::forward<Args>(args)...).
      2) If theordinary literal encoding is UTF-8, equivalent to(std::enable_nonlocking_formatter_optimization<std::remove_cvref_t<Args>>&& ...)
         ?std::vprint_unicode(stream, fmt.str,std::make_format_args(args...))
         : std::vprint_unicode_buffered(stream, fmt.str,std::make_format_args(args...));
      .
      Otherwise, equivalent to(std::enable_nonlocking_formatter_optimization<std::remove_cvref_t<Args>>&& ...)
         ?std::vprint_nonunicode(stream, fmt.str,std::make_format_args(args...))
         : std::vprint_nonunicode_buffered(stream, fmt.str,std::make_format_args(args...));
      .

      Ifstd::formatter<Ti,char> does not meet theBasicFormatter requirements for anyTi inArgs (as required bystd::make_format_args), the behavior is undefined.

      Contents

      [edit]Parameters

      stream - output file stream to write to
      fmt -an object that represents the format string. The format string consists of
      • ordinary characters (except{ and}), which are copied unchanged to the output,
      • escape sequences{{ and}}, which are replaced with{ and} respectively in the output, and
      • replacement fields.

      Each replacement field has the following format:

      {arg-id(optional)} (1)
      {arg-id(optional):format-spec} (2)
      1) replacement field without a format specification
      2) replacement field with a format specification
      arg-id - specifies the index of the argument inargs whose value is to be used for formatting; if it is omitted, the arguments are used in order.

      Thearg-id s in a format string must all be present or all be omitted. Mixing manual and automatic indexing is an error.

      format-spec - the format specification defined by thestd::formatter specialization for the corresponding argument. Cannot start with}.

      (since C++23)
      (since C++26)
      • For other formattable types, the format specification is determined by user-definedformatter specializations.
      args... - arguments to be formatted

      [edit]Exceptions

      [edit]Notes

      Feature-test macroValueStdFeature
      __cpp_lib_print202207L(C++23)Formatted output
      202403L(C++26)
      (DR23)
      Unbuffered formatted output
      202406L(C++26)
      (DR23)
      Enabling unbuffered formatted output for more formattable types
      __cpp_lib_format202207L(C++23)Exposingstd::basic_format_string

      [edit]Example

      Run this code
      #include <cstdio>#include <filesystem>#include <print> int main(){    std::print("{2} {1}{0}!\n",23,"C++","Hello");// overload (1) constauto tmp{std::filesystem::temp_directory_path()/"test.txt"};if(std::FILE* stream{std::fopen(tmp.c_str(),"w")}){        std::print(stream,"File: {}", tmp.string());// overload (2)std::fclose(stream);}}

      Output:

      Hello C++23!

      [edit]Defect reports

      The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

      DRApplied toBehavior as publishedCorrect behavior
      P3107R5C++23only buffered printing operations can be performedcan perform unbuffered printing operations
      P3235R3C++23the names of the functions added
      byP3107R5 were misleading
      changed the function names

      [edit]See also

      (C++23)
      same asstd::print except that each print is terminated by additional new line
      (function template)[edit]
      outputsformatted representation of the arguments
      (function template)[edit]
      (C++20)
      stores formatted representation of the arguments in a new string
      (function template)[edit]
      (C++20)
      writes out formatted representation of its arguments through an output iterator
      (function template)[edit]
      prints formatted output tostdout, a file stream or a buffer
      (function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/print&oldid=180496"

      [8]ページ先頭

      ©2009-2025 Movatter.jp