C 风格文件输入/输出---无格式输入/输出---(std::fputc,std::putc,std::fputs)

C++ 标准库的 C I/O 子集实现 C 风格流输入/输出操作。  头文件提供通用文件支持并提供有窄和多字节字符输入/输出能力的函数,而 头文件提供有宽字符输入/输出能力的函数。

无格式输入/输出

写字符到文件流

std::fputc, 
std::putc

int fputc( int ch, std::FILE* stream );
int putc( int ch, std::FILE* stream );

写入字符 ch 到给定输出流 stream

在内部,在写入前将字符转换为 unsigned char 。

C 中, putc() 可以实现为宏,而这在 C++ 中被禁止。从而调用 std::fputc() 和 std::putc() 始终拥有相同效果。

参数

ch - 要写入的字符
stream - 输出流

返回值

成功时,返回被写入字符。

失败时,返回 EOF 并设置 stream 上的错误指示器(见 std::ferror() )。

调用示例

#include 

int main()
{
    for (char c = 'a'; c != 'z'; c++)
    {
        std::putc(c, stdout);
    }
    std::putc('\n', stdout);

    // putchar 的返回值不等于参数
    int r = 0x1070;
    std::printf("\n0x%x\n", r);
    r = std::putchar(r);
    std::printf("\n0x%x\n", r);
    return 0;
}

输出

C 风格文件输入/输出---无格式输入/输出---(std::fputc,std::putc,std::fputs)_第1张图片

写字符串到文件流

std::fputs

int fputs( const char* str, std::FILE* stream );

写入来自空终止字符串 str 的每个字符到 stream ,如同通过重复执行 std::fputc 。

不写入来自 str 的终止空字符。

参数

str - 要写入的空终止字符串
stream - 输出流

返回值

成功时,返回非负值。

失败时,返回 EOF 并设置 stream 上的错误指示器(见 std::ferror )。

注意

相关函数 std::puts 后附新换行符到输出,而 std::fputs 写入不修改的字符串。

不同的实现返回不同的非负数:一些返回最后写入的字符,一些返回写入的字符数(或若字符串长于 INT_MAX 则为该值),一些简单地非负常量,例如零。

调用示例

#include 

int main(void)
{
    int rc = std::fputs("Hello World", stdout);

    if (rc == EOF)
    {
        std::perror("fputs()");    // POSIX 要求设置 errno
    }
    return 0;
}

输出

C 风格文件输入/输出---无格式输入/输出---(std::fputc,std::putc,std::fputs)_第2张图片

你可能感兴趣的:(C,风格文件输入/输出,c语言,C,风格文件输出,C++标准标准库,fputc,fputs)