没有系统的学习过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作为函数值返回
例子:
- #include <string.h>
- #include <stdio.h>
- int main()
- {
- FILE *stream;
- char string[] = "This is a test";
- char msg[20];
- /* open a file for update */
- stream = fopen("DUMMY.FIL", "w+");
- /* write a string into the file */
- fwrite(string, strlen(string), 1, stream);
- /* seek to the start of the file */
- fseek(stream, 0, SEEK_SET);
- /* read a string from the file */
- fgets(msg, strlen(string)+1, stream);
- /* display the string */
- printf("%s", msg);
- fclose(stream);
- return 0;
- }