zlib_fgets.h
上传用户:kellyonhid
上传日期:2013-10-12
资源大小:932k
文件大小:1k
源码类别:

3D图形编程

开发平台:

Visual C++

  1. #ifndef _ZLIB_FGETS_H
  2. #define _ZLIB_FGETS_H
  3. /*
  4.  zlib provides the equivalent of fopen and fread for gzipped files, but it's
  5.  missing fgets.  This is a quick 'n dirty replacement.
  6. */
  7. #include <zlib.h>
  8. char *gzgets(char *str, int n, gzFile f)
  9. {
  10. int count_read = 0;
  11. char *s = str;
  12. if (n == 0)
  13. return NULL;
  14. if (n == 1) {
  15. *s = '';
  16. return NULL;
  17. }
  18. while (1) {
  19. if (!gzread(f, s, 1))
  20. break;
  21. count_read++;
  22. if (count_read >= n-1) {
  23. *(s+1) = '';
  24. return str;
  25. }
  26. if (*s == 'n')
  27. break;
  28. s++;
  29. }
  30. if (!count_read)
  31. return NULL;
  32. *(s+1) = '';
  33. return str;
  34. }
  35. #endif