fgets、fgetws

功能

从流获取字符串。

语法

char *fgets(
   char *str,
   int numChars,
   FILE *stream
);
wchar_t *fgetws(
   wchar_t *str,
   int numChars,
   FILE *stream
);

参数

str
数据的存储位置。

numChars
要读取的最大字符数。

stream
指向文件结构的指针。

返回值

每个函数将返回str。 返回值与对应意思如下:

NULL:指示错误或文件结尾条件。 使用feofferror以确定是否发生了错误。 如果strstream是 null 指针,或numChars小于或等于零,此函数调用无效参数处理程序,如中所述参数验证。 如果允许执行继续,则errno设置为EINVAL并且该函数返回NULL

有关这些代码以及其他错误代码的详细信息,请参阅 _doserrno、errno、_sys_errlist 和 _sys_nerr

备注

Fgets函数从输入读取的字符串自变量并将其存储在str。 fgets读取字符从当前流位置到并包括第一个换行符,到流的结尾或直到读取的字符数等于numChars -1,具体取决于第一个。 结果存储在str追加 null 字符。 换行符(如果读取)将包括在字符串中。

fgetws是宽字符版本fgets

fgetws读取的宽字符自变量str作为多字节字符字符串或宽字符字符串根据在文本模式还是二进制模式中打开分别。 有关在 Unicode 和多字节流 I/O 中使用文本和二进制模式的详细信息,请参阅文本和二进制模式文件 I/O 和文本和二进制模式下的 Unicode 流 I/O

一般文本例程映射

TCHAR.H 例程 未定义 _UNICODE 和 _MBCS 已定义 _MBCS 已定义 _UNICODE
_fgetts fgets fgets fgetws

头文件要求

函数 必需的标头
fgets <stdio.h>
fgetws <stdio.h> 或 <wchar.h>

有关其他兼容性信息,请参阅 兼容性

示例

// crt_fgets.c
// This program uses fgets to display 
// the first line from a file.

#include <stdio.h>

int main( void )
{
   FILE *stream;
   char line[100];

   if( fopen_s( &stream, "crt_fgets.txt", "r" ) == 0 )
   {
      if( fgets( line, 100, stream ) == NULL)
         printf( "fgets error\numChars" );
      else
         printf( "%s", line);
      fclose( stream );
   }
}

输入:crt_fgets.txt

Line one.
Line two.

输出

Line one.

备注

可用如下代码快捷获取键盘输入流,并将其存为char *类型。stdin是宏指令,代表输入流指针。

char buffer[80];
fgets( buffer, sizeof buffer, stdin);

请参阅

流 I/O
fputs、fputws
gets、_getws
puts、_putws

猜你喜欢

转载自blog.csdn.net/qq_28382661/article/details/81192946