Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      stdin, stdout, stderr

      From cppreference.com
      <cpp‎ |io‎ |c
       
       
       
       
      Defined in header<cstdio>
      #define stdin  /* implementation-defined */
      (1)
      #define stdout /* implementation-defined */
      (2)
      #define stderr /* implementation-defined */
      (3)

      Three text streams are predefined. These streams are implicitly opened and unoriented at program startup.

      1) Associated with thestandard input stream, used for reading conventional input. At program startup, the stream is fully buffered if and only if the stream can be determined not to refer to an interactive device.
      2) Associated with thestandard output stream, used for writing conventional output. At program startup, the stream is fully buffered if and only if the stream can be determined not to refer to an interactive device.
      3) Associated with thestandard error stream, used for writing diagnostic output. At program startup, the stream is not fully buffered.

      What constitutes an interactive device is implementation-defined.

      These macros are expanded to expressions of typestd::FILE*.

      [edit]Notes

      Although not mandated by POSIX, the UNIX convention is thatstdin andstdout are line-buffered if associated with a terminal andstderr is unbuffered.

      These macros may be expanded to modifiable lvalues. If any of thesestd::FILE* lvalue is modified, subsequent operations on the corresponding stream result in unspecified or undefined behavior.

      [edit]Example

      This example shows a function similar tostd::printf.

      Run this code
      #include <concepts>#include <cstdio>#include <type_traits> template<typename T>concept IsPrintable=std::integral<T> orstd::floating_point<T> orstd::is_pointer_v<T>; int my_printf(charconst*const format, IsPrintableautoconst ...arguments){returnstd::fprintf(stdout, format, arguments...);} int main(int argv,char*[]){    my_printf("Strings and chars:\t%s %c\n","hello",'x');    my_printf("Rounding:\t\t%f %.0f %.32f\n",1.5,1.5,1.3);    my_printf("Padding:\t\t%05.2f %.2f %5.2f\n",1.5,1.5,1.5);    my_printf("Scientific:\t\t%E %e\n",1.5,1.5);    my_printf("Hexadecimal:\t\t%a %A 0x%X\n",1.5,1.5,&argv);}

      Possible output:

      Strings and chars:  hello xRounding:           1.500000 2 1.30000000000000004440892098500626Padding:            01.50 1.50  1.50Scientific:         1.500000E+00 1.500000e+00Hexadecimal:        0x1.8p+0 0X1.8P+0 0x2CFB41BC

      [edit]See also

      reads from the standard C input streamstdin
      (global object)[edit]
      writes to the standard C output streamstdout
      (global object)[edit]
      writes to the standard C error streamstderr, unbuffered
      (global object)[edit]
      writes to the standard C error streamstderr
      (global object)[edit]
      prints formatted output tostdout, a file stream or a buffer
      (function)[edit]
      object type, capable of holding all information needed to control a C I/O stream
      (typedef)[edit]
      C documentation forstdin,stdout,stderr
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/c/std_streams&oldid=179712"

      [8]ページ先頭

      ©2009-2025 Movatter.jp