C-style file input/output - cppreference.com

From cppreference.com

The C I/O subset of the C++ standard library implements C-style stream input/output operations. The

<cstdio>

header provides generic file operation support and supplies functions with narrow and multibyte character input/output capabilities, and the

<cwchar>

header provides functions with wide character input/output capabilities.

C streams are denoted by objects of type

std::FILE

that can only be accessed and manipulated through pointers of type std::FILE*. Each C stream is associated with an external physical device (file, standard input stream, printer, serial port, etc).

Types

object type, capable of holding all information needed to control a C I/O stream
(typedef)

[edit]

complete non-array object type, capable of uniquely specifying a position in a file, including its multibyte parse state
(typedef)

[edit]

Predefined standard streams

expression of type FILE* associated with the input stream
expression of type FILE* associated with the output stream
expression of type FILE* associated with the error output stream
(macro constant)

[edit]

Functions

Defined in header

<cstdio>

File access

fopen

opens a file
(function)

[edit]

freopen

open an existing stream with a different name
(function)

[edit]

fclose

closes a file
(function)

[edit]

fflush

synchronizes an output stream with the actual file
(function)

[edit]

fwide

switches a file stream between wide character I/O and narrow character I/O
(function)

[edit]

setbuf

sets the buffer for a file stream
(function)

[edit]

setvbuf

sets the buffer and its size for a file stream
(function)

[edit]

Direct input/output

fread

reads from a file
(function)

[edit]

fwrite

writes to a file
(function)

[edit]

Unformatted input/output Byte/multibyte character

fgetcgetc

gets a character from a file stream
(function)

[edit]

fgets

gets a character string from a file stream
(function)

[edit]

fputcputc

writes a character to a file stream
(function)

[edit]

fputs

writes a character string to a file stream
(function)

[edit]

getchar

reads a character from

stdin

(function)

[edit]

gets

(deprecated in C++11)(removed in C++14)

reads a character string from

stdin

(function)

[edit]

putchar

writes a character to

stdout

(function)

[edit]

puts

writes a character string to

stdout

(function)

[edit]

ungetc

puts a character back into a file stream
(function)

[edit]

Wide character

fgetwcgetwc

gets a wide character from a file stream
(function)

[edit]

fgetws

gets a wide string from a file stream
(function)

[edit]

fputwcputwc

writes a wide character to a file stream
(function)

[edit]

fputws

writes a wide string to a file stream
(function)

[edit]

getwchar

reads a wide character from

stdin

(function)

[edit]

putwchar

writes a wide character to

stdout

(function)

[edit]

ungetwc

puts a wide character back into a file stream
(function)

[edit]

Formatted input/output Byte/multibyte character

scanffscanfsscanf

reads formatted input from

stdin

, a file stream or a buffer
(function)

[edit]

vscanfvfscanfvsscanf

(C++11)(C++11)(C++11)

reads formatted input from

stdin

, a file stream or a buffer
using variable argument list
(function)

[edit]

printffprintfsprintfsnprintf

(C++11)

prints formatted output to

stdout

, a file stream or a buffer
(function)

[edit]

vprintfvfprintfvsprintfvsnprintf

(C++11)

prints formatted output to

stdout

, a file stream or a buffer
using variable argument list
(function)

[edit]

Wide character

wscanffwscanfswscanf

reads formatted wide character input from

stdin

, a file stream or a buffer
(function)

[edit]

vwscanfvfwscanfvswscanf

(C++11)(C++11)(C++11)

reads formatted wide character input from

stdin

, a file stream
or a buffer using variable argument list
(function)

[edit]

wprintffwprintfswprintf

prints formatted wide character output to

stdout

, a file stream or a buffer
(function)

[edit]

vwprintfvfwprintfvswprintf

prints formatted wide character output to

stdout

, a file stream
or a buffer using variable argument list
(function)

[edit]

File positioning

ftell

returns the current file position indicator
(function)

[edit]

fgetpos

gets the file position indicator
(function)

[edit]

fseek

moves the file position indicator to a specific location in a file
(function)

[edit]

fsetpos

moves the file position indicator to a specific location in a file
(function)

[edit]

rewind

moves the file position indicator to the beginning in a file
(function)

[edit]

Error handling

clearerr

clears errors
(function)

[edit]

feof

checks for the end-of-file
(function)

[edit]

ferror

checks for a file error
(function)

[edit]

perror

displays a character string corresponding of the current error to

stderr

(function)

[edit]

Operations on files

remove

erases a file
(function)

[edit]

rename

renames a file
(function)

[edit]

tmpfile

creates and opens a temporary, auto-removing file
(function)

[edit]

tmpnam

returns a unique filename
(function)

[edit]

Macro constants

EOF

integer constant expression of type int and negative value
(macro constant)FOPEN_MAX

maximum number of files that can be open simultaneously
(macro constant)FILENAME_MAX

size needed for an array of char to hold the longest supported file name
(macro constant)_PRINTF_NAN_LEN_MAX

(C++26)

the maximum number of characters output for any (possibly negated) NaN value
(macro constant)BUFSIZ

size of the buffer used by

std::setbuf

(macro constant)_IOFBF_IOLBF_IONBF

indicates the buffering mode (fully buffered / line buffered / unbuffered) to be set by

std::setvbuf

(macro constant)SEEK_SETSEEK_CURSEEK_END

indicates the offset origin (beginning / current position / end) to be used by

std::fseek

(macro constant)TMP_MAX

maximum number of unique filenames that can be generated by

std::tmpnam

(macro constant)L_tmpnam

size needed for an array of char to hold the result of

std::tmpnam

(macro constant)See also