Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/io/c/fputc"

From cppreference.com
< cpp‎ | io‎ | c
m (Shorten template names. Use {{lc}} where appropriate.)
m ({{c}})
 
(9 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{cpp/title | fputc | putc}}
+
{{cpp/title|fputc|putc}}
 
{{cpp/io/c/navbar}}
 
{{cpp/io/c/navbar}}
{{ddcl | header=cstdio |
+
{{ddcl|header=cstdio|
int fputc( int ch, FILE *stream );
+
int fputc( int ch, std::FILE* stream );
int putc( int ch, FILE *stream );
+
int putc( int ch, std::FILE* stream );
 
}}
 
}}
  
Writes a character {{tt|ch}} to the given output stream {{tt|stream}}. {{c|putc()}} function may be implemented as a macro.  
+
Writes a character {{c|ch}} to the given output stream {{c|stream}}.
 +
 
 +
Internally, the character is converted to {{c|unsigned char}} just before being written.
 +
 
 +
In C, [[c/io/putc|{{c|putc()}}]] may be implemented as a macro, which is disallowed in C++. Therefore, calls to {{c|std::fputc()}} and {{c|std::putc()}} always have the same effect.
  
 
===Parameters===
 
===Parameters===
 
{{par begin}}
 
{{par begin}}
{{par | ch | character to be written}}
+
{{par|ch|character to be written}}
{{par | stream | the output stream}}
+
{{par|stream|output stream}}
 
{{par end}}
 
{{par end}}
  
 
===Return value===
 
===Return value===
{{tt|ch}} on success, {{lc|EOF}} on failure.
+
On success, returns the written character.
 +
 
 +
On failure, returns {{lc|EOF}} and sets the ''error'' indicator (see {{lc|std::ferror()}}) on {{lc|stream}}.
 +
 
 +
===Example===
 +
{{example
 +
|code=
 +
#include <cstdio>
 +
 
 +
int main()
 +
{
 +
    for (char c = 'a'; c != 'z'; c++)
 +
        std::putc(c, stdout);
 +
 
 +
    // putchar's return value is not equal to the argument
 +
    int r = 0x102A;
 +
    std::printf("\nr = 0x%x\n", r);
 +
 
 +
    r = std::putchar(r);
 +
    std::printf("\nr = 0x%x\n", r);
 +
}
 +
|p=true
 +
|output=
 +
abcdefghijklmnopqrstuvwxy
 +
r = 0x102A
 +
*
 +
r = 0x2A
 +
}}
  
 
===See also===
 
===See also===
 
{{dsc begin}}
 
{{dsc begin}}
{{dsc inc | cpp/io/c/dcl list putchar}}
+
{{dsc inc|cpp/io/c/dsc putchar}}
{{dsc see c | c/io/fputc | fputc | putc}}
+
{{dsc see c|c/io/fputc|fputc|putc}}
 
{{dsc end}}
 
{{dsc end}}
  
[[de:cpp/io/c/fputc]]
+
{{langlinks|de|es|fr|it|ja|pt|ru|zh}}
[[es:cpp/io/c/fputc]]
+
[[fr:cpp/io/c/fputc]]
+
[[it:cpp/io/c/fputc]]
+
[[ja:cpp/io/c/fputc]]
+
[[pt:cpp/io/c/fputc]]
+
[[ru:cpp/io/c/fputc]]
+
[[zh:cpp/io/c/fputc]]
+

Latest revision as of 03:31, 29 September 2023

 
 
 
C-style I/O
Types and objects
Functions
File access
Direct input/output
Unformatted input/output
fputcputc
(until C++14)
Formatted input
(C++11)(C++11)(C++11)    
(C++11)(C++11)(C++11)    
 
Defined in header <cstdio>
int fputc( int ch, std::FILE* stream );
int putc( int ch, std::FILE* stream );

Writes a character ch to the given output stream stream.

Internally, the character is converted to unsigned char just before being written.

In C, putc() may be implemented as a macro, which is disallowed in C++. Therefore, calls to std::fputc() and std::putc() always have the same effect.

Contents

[edit] Parameters

ch - character to be written
stream - output stream

[edit] Return value

On success, returns the written character.

On failure, returns EOF and sets the error indicator (see std::ferror()) on stream.

[edit] Example

#include <cstdio>
 
int main()
{
    for (char c = 'a'; c != 'z'; c++)
        std::putc(c, stdout);
 
    // putchar's return value is not equal to the argument
    int r = 0x102A;
    std::printf("\nr = 0x%x\n", r);
 
    r = std::putchar(r);
    std::printf("\nr = 0x%x\n", r);
}

Possible output:

abcdefghijklmnopqrstuvwxy
r = 0x102A
*
r = 0x2A

[edit] See also

writes a character to stdout
(function) [edit]
C documentation for fputc, putc