일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Redux Toolkit
- zustand
- Recoil
- Sparkplug
- TypeScript
- 명시적 타입 변환
- CS
- type assertion
- task queue
- useCallback
- AJIT
- 암묵적 타입 변환
- 프로세스
- Render Queue
- 클라이언트 상태 관리 라이브러리
- 좋은 PR
- jotai
- react
- Compound Component
- docker
- Microtask Queue
- useLayoutEffect
- prettier-plugin-tailwindcss
- 타입 단언
- JavaScript
- Headless 컴포넌트
- Custom Hook
- helm-chart
- linux 배포판
- 주니어개발자
Archives
- Today
- Total
구리
[Java] EOF(End of File) 처리 본문
EOF란 컴퓨팅에서 파일의 끝(End of FIle)을 나타내며 데이터 소스로부터 더이상 읽을 수 있는 데이터가 없음을 나타냅니다.
자바에서는 대표적인 입력 클래스로 Scannner, BufferedReader가 있는데 각각의 EOF 처리 방법은 다음과 같습니다.
[Scanner]
Scanner sc = new Scanner(System.in);
while(sc.hasNextLine()) {
sc.nextLine();
}
while(sc.hasNextInt()) {
sc.nextInt();
}
[BufferedReader]
BufferedReader br = new BufferedReader(new InputStreamReader(System.in);
String input = "";
while((input = br.readLine()) != null) {
//......
}
[관련 예시]
https://www.acmicpc.net/problem/10951
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
* 입력
입력은 여러 개의 테스트 케이스로 이루어져 있다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
* 출력
각 테스트 케이스마다 A+B를 출력한다.
* 풀이
해당 문제는 입력받을 테스트 케이스의 개수와 종료 조건이 명시되지 않았기에 프로그램에서 파일의 끝을 만났음을 알리기 위해 매크로로 정의된 EOF 값을 리턴해야 합니다.
import java.io.*;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
Scanner s = new Scanner(System.in);
while(s.hasNextInt()){
int A = s.nextInt();
int B = s.nextInt();
System.out.println(A+B);
}
}
}
'Java' 카테고리의 다른 글
[Java] StringBuilder 사용하는 이유? (0) | 2021.09.10 |
---|---|
[Java] BufferedReader, BufferedWriter (0) | 2021.09.07 |
동기 비동기 방식(Asynchronous processing model) (0) | 2021.06.09 |
자바 디자인 패턴 : Factory Method Pattern (0) | 2021.06.07 |
자바 디자인 패턴 : SingleTone (0) | 2021.04.29 |