El subconjunto CI/O de la biblioteca estándar de C++ implementa operaciones de entrada/salida de flujo de estilo C. El archivo de encabezado <cstdio> proporciona soporte general de archivos y proporciona funciones con capacidades de entrada/salida de caracteres estrechos y multibyte, mientras que el archivo de encabezado <cwchar> proporciona funciones con capacidades de entrada/salida de caracteres amplios.
Entrada/salida sin formato
Escribir caracteres en la secuencia de archivos
std::fputc,
std::putc
int fputc( int ch, std::FILE* secuencia ); |
Escribe caracteres ch
en el flujo de salida dado stream
.
Internamente, los caracteres se convierten a caracteres sin firmar antes de escribirlos.
En C, putc() se puede implementar como una macro, lo cual está prohibido en C++. Por lo tanto, llamar a std::fputc() y std::putc() siempre tiene el mismo efecto.
parámetro
ch | - | personajes para escribir |
arroyo | - | flujo de salida |
valor de retorno
En caso de éxito, devuelve el carácter escrito.
En caso de error, devuelve EOF y establece el indicador de error en la secuencia (consulte std::ferror()).
Ejemplo de llamada
#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;
}
producción
Escribir cadena en flujo de archivo
std::fputs
int fputs( const char* str, std::FILE* flujo ); |
Escribe str
cada carácter de la cadena terminada en nulo en stream
, como si ejecutara repetidamente std::fputc.
str
El carácter nulo final de no está escrito .
parámetro
cadena | - | cadena terminada en nulo para escribir |
arroyo | - | flujo de salida |
valor de retorno
En caso de éxito, devuelve un valor no negativo.
En caso de error, devuelve EOF y activa stream
el indicador de error (consulte std::ferror).
Aviso
La función relacionada std::puts agrega una nueva línea a la salida, mientras std::fputs
escribe la cadena sin cambios.
Diferentes implementaciones devuelven diferentes números no negativos: algunas devuelven el último carácter escrito, otras devuelven el número de caracteres escritos (o el valor si la cadena es más larga que INT_MAX), algunas son simplemente una constante no negativa como cero.
Ejemplo de llamada
#include <cstdio>
int main(void)
{
int rc = std::fputs("Hello World", stdout);
if (rc == EOF)
{
std::perror("fputs()"); // POSIX 要求设置 errno
}
return 0;
}