没有系统的学习过C语言,只学习过C++,今天遇到了fgets()函数,学习一下。

char *fgets(char *string,int n,FILE *stream)

功能:从流中读取一字符串

从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL。

函数的功能是从fp所指文件中读入n-1个字符放入str为起始地址的空间内;如果在未读满n-1个字符之时,已读到一个换行符或一个EOF(文件结束标志),则结束本次读操作,读入的字符串中最后包含读到的换行符。因此,确切地说,调用fgets函数时,最多只能读入n-1个字符。读入结束后,系统将自动在最后加'\0',并以str作为函数值返回

例子:

 

  1. #include <string.h>  
  2. #include <stdio.h>  
  3.  
  4.  
  5. int main()  
  6. {  
  7.     FILE *stream;  
  8.     char string[] = "This is a test";  
  9.     char msg[20];  
  10.       
  11.     /* open a file for update */ 
  12.     stream = fopen("DUMMY.FIL""w+");  
  13.       
  14.     /* write a string into the file */ 
  15.     fwrite(string, strlen(string), 1, stream);  
  16.       
  17.     /* seek to the start of the file */ 
  18.     fseek(stream, 0, SEEK_SET);  
  19.       
  20.     /* read a string from the file */ 
  21.     fgets(msg, strlen(string)+1, stream);  
  22.       
  23.     /* display the string */ 
  24.     printf("%s", msg);  
  25.       
  26.     fclose(stream);  
  27.     return 0;  
  28.