카테고리 없음

[TIL] 2022년 9월 27일 화요일

2022. 9. 27. 22:54

- '\r' 캐리지 리턴으로 커서를 현재 라인의 첫 번째 칼럼으로 이동

- '\n' 다음줄로 이동하는 줄바꿈

- 엔터를 클릭하면 '\r', '\n' 두 개의 특수문자로 간주하여 다음줄의 첫 번째 칼럼으로 이동

- 윈도우는 Ctrl + Z, 유닉스와 매킨토시는 Ctrl + d를 누르면 EOF, 입력의 끝으로 인식한다고 했는데 실제로 해보니 Ctrl + Z를 누르면 아래와 같이 조금 다름

Ctrl + D로 종료했을 때
Ctrl + Z로 종료했을 때

 

- 위 예제에서도 hello를 입력하고 Enter키를 입력하면 결과가 나온 다음 개행문자인 \r, \n이 출력되어 다음줄의 첫 번째 칼럼으로 이동 → System.in에 BufferedReader를 이용하여 라인단위로 입력받는 readLine()을 이용

- BufferedReader와 readLine()을 이용하도록 예제를 수정

더보기
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class StandardIOEx {
    public static void main(String[] args) {
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

            while (true){
                String input = br.readLine();
                for(int i=0; i<input.length(); i++){
                    System.out.println("input: " + Character.getNumericValue(input.charAt(i)) + ", (char)input: " + input.charAt(i));
                }
            }

        }catch (IOException e){
            e.printStackTrace();
        }
    }
}

Ctrl + D로 종료했을 때
Ctrl + Z 로 종료했을 때

- BufferedReader와 readLine()을 이용한 경우 종료했을 때 결과값이 조금 다름. Ctrl + D의 경우 문자열로 input을 받았으나 실제로 입력된 것이 없어 for문 안에 input.length()가 null이라 오류가 났고, Ctrl + Z 는 아까와 동일하게 종료함