fgets变长
来源:互联网 发布:侵犯商标权 淘宝 编辑:程序博客网 时间:2024/05/01 07:27
#define Malloc(type,n) (type *)malloc((n)*sizeof(type))static char *line = NULL;static int max_line_len;static char* readline(FILE *input){int len;if(fgets(line,max_line_len,input) == NULL)return NULL;while(strrchr(line,'\n') == NULL){max_line_len *= 2;line = (char *) realloc(line,max_line_len);len = (int) strlen(line);if(fgets(line+len,max_line_len-len,input) == NULL)break;}return line;}int main(){max_line_len = 1024;line = Malloc(char,max_line_len);while(readline(fp)!=NULL){}free(line);}