fgets、fgetws

从流获取字符串。

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

参数

  • str
    数据的存储位置。

  • n
    要读取的最大字符数

  • stream
    指向 FILE 结构的指针。

返回值

这些函数都返回str。 NULL 返回指示的错误或一个文件的结尾。 使用 feof 或 ferror 来确定是否发生了错误。 如果str 或 stream 是一个 null 指针, 或者如果 n 小于等于零,这些函数将调用无效参数处理程序, 正如参数验证所述。 如果允许执行继续,errno设置为EINVAL,并且函数返回NULL。

有关这些内容的更多信息以及其他错误代码,请参见 _doserrno、errno、_sys_errlist 和 _sys_nerr

备注

fgets 函数读取输入 stream 参数的字符串并将其存储到 str中。 fgets 读取从当前流位置的字符,并且包括第一个字符,到流的末尾,或直至读取字符数 - 1 与 n 相等。 存储在 str 中追加 null 字符。 如果读取,换行字符包括在字符串中。

fgetws 是 fgets的宽字符版本。

fgetws 读取宽字符参数 str作为多字节字符字符串或宽字符字符串,并根据 stream 是否在文本模式或二进制模式打开, 分别复制宽字符参数。 更多关于在统一字符标准下的使用文本和二进制模式,以及多字节输入/输出信息,请参见 文本和二进制模式文件输入/输出统一字符标准下的文本及二进制模式输入/输出.

一般文本例程映射

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
// a line from a file on the screen.
//

#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\n" );
      else
         printf( "%s", line);
      fclose( stream );
   }
}

Input: crt_fgets.txt

Line one.
Line two.

Output

Line one.

.NET Framework 等效项

请参见

参考

流 I/O

fputs、fputws

gets、_getws

puts、_putws