从 stdin 中读取字符。
int _fgetchar( void );
wint_t _fgetwchar( void );
返回值
_fgetchar 返回作为 int 读取的字符或返回 EOF 指示错误或文件结尾。 **_**fgetwchar 返回,作为 wint_t,对应于读取字符的宽字符或返回 WEOF 指示错误或文件结尾。 对于两个函数,请使用 feof 或 ferror 区分错误和文件结束的情形。
备注
这些函数从 stdin读取单个字符。 函数增加关联文件指针 (如果定义) 指向下一个字符。 如果流是在文件末尾,流的文件结尾指示符已设置。
_fgetchar 与 fgetc( stdin ) 相等。 与 getchar等效,但是作为函数实现,而不是函数和宏。 _fgetwchar 是 _fgetchar的宽字符版本。
这些函数与 ANSI 标准不兼容。
一般文本例程映射
Tchar.h 例程 |
未定义 _UNICODE 和 _MBCS |
已定义 _MBCS |
已定义 _UNICODE |
---|---|---|---|
_fgettchar |
_fgetchar |
_fgetchar |
_fgetwchar |
要求
功能 |
必需的标头 |
---|---|
_fgetchar |
<stdio.h> |
_fgetwchar |
<stdio.h> 或 <wchar.h> |
控制台在 Windows 应用商店 应用程序中不受支持。 与控制台 stdin、stdout 和 stderr 关联的标准流句柄必须重定向,然后 C 运行时函数才可以在 Windows 应用商店 应用程序中使用它们。 有关兼容性的更多信息,请参见兼容性。
示例
// crt_fgetchar.c
// This program uses _fgetchar to read the first
// 80 input characters (or until the end of input)
// and place them into a string named buffer.
//
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
char buffer[81];
int i, ch;
// Read in first 80 characters and place them in "buffer":
ch = _fgetchar();
for( i=0; (i < 80 ) && ( feof( stdin ) == 0 ); i++ )
{
buffer[i] = (char)ch;
ch = _fgetchar();
}
// Add null to end string
buffer[i] = '\0';
printf( "%s\n", buffer );
}