C++ 标准库的 C I/O 子集实现 C 风格流输入/输出操作。 <cstdio> 头文件提供通用文件支持并提供有窄和多字节字符输入/输出能力的函数,而 <cwchar>头文件提供有宽字符输入/输出能力的函数。
无格式输入/输出
写字符到文件流
std::fputc,
std::putc
int fputc( int ch, std::FILE* stream ); |
写入字符 ch
到给定输出流 stream
。
在内部,在写入前将字符转换为 unsigned char 。
C 中, putc() 可以实现为宏,而这在 C++ 中被禁止。从而调用 std::fputc() 和 std::putc() 始终拥有相同效果。
参数
ch | - | 要写入的字符 |
stream | - | 输出流 |
返回值
成功时,返回被写入字符。
失败时,返回 EOF 并设置 stream 上的错误指示器(见 std::ferror() )。
调用示例
#include <cstdio>
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;
}
输出
写字符串到文件流
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 <cstdio>
int main(void)
{
int rc = std::fputs("Hello World", stdout);
if (rc == EOF)
{
std::perror("fputs()"); // POSIX 要求设置 errno
}
return 0;
}