fwide
|
Definido en el encabezado
<wchar.h>
|
||
|
int
fwide
(
FILE
*
stream,
int
mode
)
;
|
(desde C95) | |
Si mode > 0 , intenta hacer que el stream esté orientado a caracteres anchos. Si mode < 0 , intenta hacer que el stream esté orientado a bytes. Si mode == 0 , solo consulta la orientación actual del stream.
Si la orientación del flujo ya ha sido decidida (mediante la ejecución de salida o por una llamada anterior a
fwide
), esta función no hace nada.
Contenidos |
Parámetros
| stream | - | puntero al flujo de E/S de C a modificar o consultar |
| mode | - | valor entero mayor que cero para establecer el flujo como ancho, menor que cero para establecer el flujo como estrecho, o cero para solo consultar |
Valor de retorno
Un entero mayor que cero si el flujo está orientado a caracteres anchos después de esta llamada, menor que cero si el flujo está orientado a bytes después de esta llamada, y cero si el flujo no tiene orientación.
Ejemplo
El siguiente código establece y restablece la orientación del flujo.
#include <stdio.h> #include <stdlib.h> #include <wchar.h> void show_orientation(int n) { n < 0 ? puts("\tnarrow orientation"): n > 0 ? puts("\twide orientation"): puts("\tno orientation"); } void try_read(FILE* fp) { int c = fgetc(fp); c == EOF ? printf("\tnarrow character read failed\n") : printf("\tnarrow character read '%c'\n", c); wint_t wc = fgetwc(fp); wc == WEOF ? printf("\twide character read failed\n") : printf("\twide character read '%lc'\n", wc); } int main(void) { enum fwide_orientation { narrow = -1, query, wide }; FILE* fp = fopen("main.cpp", "r"); if (!fp) { perror("fopen() failed"); return EXIT_FAILURE; } puts("1) A newly opened stream has no orientation."); show_orientation(fwide(fp, query)); puts("2) Establish byte orientation."); show_orientation(fwide(fp, narrow)); try_read(fp); puts("3) Only freopen() can reset stream orientation."); if (freopen("main.cpp", "r", fp) == NULL) { perror("freopen() failed"); return EXIT_FAILURE; } puts("4) A reopened stream has no orientation."); show_orientation(fwide(fp, query)); puts("5) Establish wide orientation."); show_orientation(fwide(fp, wide)); try_read(fp); fclose(fp); }
Salida posible:
1) A newly opened stream has no orientation.
no orientation
2) Establish byte orientation.
narrow orientation
narrow character read '#'
wide character read failed
3) Only freopen() can reset stream orientation.
4) A reopened stream has no orientation.
no orientation
5) Establish wide orientation.
wide orientation
narrow character read failed
wide character read '#'
Referencias
- Estándar C23 (ISO/IEC 9899:2024):
-
- 7.29.3.5 La función fwide (p: TBD)
- Estándar C17 (ISO/IEC 9899:2018):
-
- 7.29.3.5 La función fwide (p: 309)
- Estándar C11 (ISO/IEC 9899:2011):
-
- 7.29.3.5 La función fwide (p: 423)
- Estándar C99 (ISO/IEC 9899:1999):
-
- 7.24.3.5 La función fwide (p: 369)
Véase también
|
(C11)
|
abre un archivo
(función) |
|
C++ documentation
para
fwide
|
|