fgets() -------------------------------------------- char *fgets(char *s, int size, FILE *stream); s 是保存读取内容的缓冲区 size 是缓冲区大小 stream 是一个FILE指针 fgets()函数 读取到它遇到的第一个换行符; 或者读取到比缓冲区的最大长度少一个字符; 或者读到文件末尾。 如果fgets()函数在达到缓冲区最大数目之前读完了一整行,它将在字符串的空字符之前添加一个换行符以标识一行结束。 #include <stdio.h> #include <stdlib.h> #define SLEN 256 const char *errmesg[] = {"Usage: %s string filename]/n", "Can't open file %s/n" }; int main(int argc, char *argv[]) { FILE *fp; char line[SLEN]; if (argc != 3) { fprintf(stderr, errmesg[0], argv[0]); exit(EXIT_FAILURE); } if ((fp = fopen(argv[2], "r")) == NULL) { fprintf(stderr, errmesg[1], argv[2]); exit(EXIT_FAILURE); } while (fgets(line, SLEN - 1, fp) != NULL)//只要没到文件末尾, 就按SLEN-1的长 度打印 { if (strstr(line, argv[1]) != NULL)//strstr函数查找line字符数组中和 字符串argv[1]一样的,如果没有,返回空指针 fputs(line, stdout); } fclose(fp); return 0; } |
fgets()函数介绍,很方便实现逐行打印
最新推荐文章于 2024-06-27 23:43:39 发布