구현 아이디어

  1. main에서의 인자가 valid한지와 이 인자가 .ber 확장자로 끝났는지 검사.

    valid input인지 여부

  2. valid하면 open으로 파일 open하기.

  3. 파일명이 존재하지 않으면 에러처리.

    valid input인지 여부

  4. 이전에 구현한 get_next_line으로 한 문장씩 받아오고, 이 문장에 ‘\n’삽입해서 합치기 - split으로 변환할 것이라 문장 구분자가 있어야 함.

  5. 4번을 eof까지 반복하기.

  6. split으로 나눈 이차원 배열을 map에 넣기.

void map_parsing(int fd, char ***map)//이차원배열의 주소 전달
{
    char *line;//get_next_line으로 받아오는 문자열
    char *split;//나중에 split할 최종 문자열
    char *new;//temp변수
    int gnl;

    gnl = get_next_line(fd, &line);
    split = ft_strdup("\\0");
    while (gnl != -1)//gnl에러 나지 않을 때까지. gnl에러나면 예외처리 해야 함.
    {
        new = ft_strjoin(line, "\\n\\0");
        free(line);
        line = new;
        new = ft_strjoin(split, line);
        free(split);
        split = new; 
        free(line);
        if (gnl == 0)
            break;
        gnl = get_next_line(fd, &line);
    }
    if (gnl == -1)
        so_long_error(3);
    (*map) = ft_split(split, '\\n');//split으로 자르게
    free(split);
}