一、读字符串函数fgets
函数原型:
char fgets ( char* str, int size, FILE* stream)*
*str: 字符型指针,用来存储所得数据的地址。字符数组。
size: 整型数据,要复制到str中的字符串的长度,包含终止NULL。
*stream:文件结构体指针,将要读取的文件流。
意义:从stream所指向的文件中读取size-1个字符送入字符串数组str中。
功能:从文件中读取字符串,每次只读取一行。
注意:
1. fgets每次最多只能读取n-1个字2.符,第n个为NULL。
2. 当遇到换行符或者EOF时,即使当前位置在n-1之前也读出结束。
3. 若函数返回成功,则返回 字符串数组str的首地址。
举例:
文件flie:
This is a text.
my file.
如果用fgets(str1,5,file);去读取,则执行:
str1=This,实际只读取5-1=4个字符。
如果用fgets(str2,20,flie);去读取,则执行:
str2=This is a text. 遇到换行符就停止读出。
代码:
1 /* fgets example */
2 #include <stdio.h>
3
4 int main()
5 {
6 FILE * pFile;
7 char mystring [100];
8
9 pFile = fopen ("myfile.txt" , "r");
10 if (pFile == NULL) perror ("Error opening file");
11 else {
12 if ( fgets (mystring , 100 , pFile) != NULL )
13 puts (mystring);
14 fclose (pFile);
15 }
16 return 0;
17 }