函数原型
char *gets(char *s)
char *fgets(char *s, int size, FILE *stream)
gets函数容易造成缓冲区溢出,不推荐使用
fgets从指定的流中读取一个字符串,当遇到 \n 时,会读取 \n 或读取 size-1 个字符串后返回
注意:fgets不能保证每次都能读一行
fgets()计算一个文本文件的行数
#include<stdio.h>
#include<string.h>
int main(int argc, char *argv[])
{
int line = 0;
char buf[128];
FILE *fp;
if(argc < 2)
{
printf("Usage : %s <file> \n", grgv[0]);
return -1;
}
if(NULL == (fp = fopen(argv[1], "r")))
{
perror("fail to open");
return -1;
}
while(fgets(buf, 128, fp) != NULL)
{
if(buf[strlen(buf)-1] == '\n')
line++;
}
printf("The line of %s is %d \n", argv[1], line);
return 0;
}