Namespaces
Variants
Views
Actions

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

From cppreference.com
< cpp‎ | io‎ | c
m (fmt)
(The fputc function will not be a macro, instead, putc might be a macro according to the C2x standard)
Line 10: Line 10:
 
Internally, the character is converted to {{c|unsigned char}} just before being written.
 
Internally, the character is converted to {{c|unsigned char}} just before being written.
  
In C, [[c/io/fputc|{{c|fputc()}}]] 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.
+
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===

Revision as of 18:08, 20 July 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

Parameters

ch - character to be written
stream - output stream

Return value

On success, returns the written character.

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

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

See also

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