line[j] == '1' ;은 무슨 의미인가요? line[i] = 1;을 넣었으니까 line[j] == 1 이였다면 모를까;;
일단 가장 큰 문제는... 글자 수가 6자 이상일 경우 j값을 바꾸는 부분이 이상합니다. 필이 고칩시다.
그리고 주석등을 처리할 때도 문제가 발생하겠네요. 예를 들어 가장 마지막줄에 // 주석이 있는 경우, j가 i(==입력된 글자의 개수)보다 커지게 되는데 그 상태에서 단어를 넣으려고 하고있습니다.
개인적으로 line[i] = 1; 대신 line[i] = '\n';을 추천합니다.