fpTxt = fopen("ascii.txt", "r"); // 결과 출력용 텍스트 파일 열기
심사문제는 출력된 텍스트 일치로만 판단합니다.
따라서 ascii.txt 파일을 생성하는 과정이 필요하지 않습니다.
그럼에도 문의한 코드를 실행했을 때 ascii.txt가 생성되어야 하지만, 생성되지 않습니다.
fopen으로 ascii.txt를 열었다면 결과를 저장하기 위한 용도일 것인데
모드는 "r"로 되어 있어서 읽기 모드입니다. 잉? 아아앗?
그래서 화면에 출력되는 결과도 없고, ascii.txt 파일도 생성되지 않습니다.
따라서 결과가 어떤 과정을 거치는지 전혀 알 수 없습니다.
UNIT 81.6을 실행해보세요.
해당 예제를 완벽하게 이해하면 81.7은 쉽습니다.
UNIT 81.6의 예제에서는
fpTxt = fopen("ascii.txt","w");
ascii.txt 파일을 생성해서 결과를 보는 것이 목적이라면 모드가 "w"이고, 쓰기 모드로 확실하게 되어 있습니다.
UNIT 81.6에서는
UNIT 81.7에서는 숫자 형태로 바꿀 뿐입니다. UNIT 81.6에서는 ascii.txt 파일에 쓰기를 하기 위해 fprintf를 사용했습니다. fprintf의 f는 file을 뜻합니다. 파일에 쓰는 printf라는 뜻이 fprintf입니다. UNIT 81.7에서는 파일에 쓰지 않고 화면에 출력하는 문제입니다. 따라서 ascii.txt 파일을 생성할 필요도 읽을 필요도 없습니다. 화면에 출력하면 됩니다. printf만 쓰면 된다는 뜻이죠. 변환할 때 기호 대신에 숫자로 바꾼다 파일에 쓰지 않고 화면에 출력한다 그렇다면 UNIT 81.6의 예제를 토대로 소스 코드에 있는 sample50x50.bmp를 sample.bmp로 바꿔서 테스트해본다. UNIT 81.6 예제에서 기호를 숫자로 바꿔서 잘 동작하는지 확인한다. ascii.txt에 숫자로 잘 생성되는지 확인한다. 파일로 잘 동작하는 것을 확인했다면 파일 대신 화면에 출력하는 버전으로 바꿔 본다. 이렇게 차례대로 하나씩 단계를 거치면서 디벨롭해가면 될 겁니다. char
ascii[] = { '#', '#', '@', '%', '=', '+', '*', ':', '-', '.', ' ' };