C言語なら、俺に聞け! <13>
■ このスレッドは過去ログ倉庫に格納されています
0238231
NGNGなんか長くなっちゃった・・・鬱
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LINE_BUF_GROW_STEP 8
#define MAX_LINE 10240
char **hoge[MAX_LINE];
main() {
char *line,*line_tmp;
char *word;
char **line_element_ptr;
int lines = 0;
int chars;
int count;
int line_buf_len = 2; /* 最低でも 2 は必要(man fgets) */
int i,j;
/* 行バッファ確保 */
line = (char *)malloc(line_buf_len);
line_tmp = (char *)malloc(line_buf_len);
if (!line || !line_tmp) {
puts("メモリ買えや・・・");
exit(1);
}
/* 読み込むよぅ */
while(fgets(line,line_buf_len,stdin)) {
/* 継続読み込み */
while(line[strlen(line)-1] != '\n' && !feof(stdin)) {
/* 行バッファ伸ばす */
line_buf_len += LINE_BUF_GROW_STEP;
line = (char *)realloc(line,line_buf_len);
line_tmp = (char *)realloc(line_tmp,line_buf_len);
if (!line || !line_tmp) {
puts("メモリねぇんだゴルァ・・・");
exit(1);
}
/* 続きを読み込む */
fgets(line+(line_buf_len - LINE_BUF_GROW_STEP -1),
LINE_BUF_GROW_STEP+1,stdin);
}
■ このスレッドは過去ログ倉庫に格納されています