C/C++の宿題を片付けます 66代目
■ このスレッドは過去ログ倉庫に格納されています
0421デフォルトの名無しさん
2006/08/02(水) 18:30:33#include <stdio.h>
#include <stdlib.h>
static char *linebuffer;
void free_linebuffer(void){
if(linebuffer) free(linebuffer);
linebuffer = NULL;
}
char *readline(FILE *fp){
static int size;
int i = 0, ch;
if(EOF == (ch = fgetc(fp))){
return NULL;
}
if(!linebuffer){
linebuffer = malloc(size = 256);
atexit(free_linebuffer);
}
do{
if(ch == '\n') break;
if(i >= size){
size *= 2;
linebuffer = realloc(linebuffer, size);
}
linebuffer[i++] = ch;
}while(EOF != (ch = fgetc(fp)));
linebuffer[i] = '\0';
return linebuffer;
}
■ このスレッドは過去ログ倉庫に格納されています