๐EOF
EOF๋ End of File ์ด๋ผ๋ ๋ป์ผ๋ก ํ์ผ์ด๋ ์
๋ ฅ ์คํธ๋ฆผ์ ๋์ ๋ํ๋ด๋ ์ํ์. ์ฆ, ๋ ์ด์ ์ฝ์ ๋ฐ์ดํฐ๊ฐ ์์์ ์๋ ค์ฃผ๋ ์ ํธ์.
์ฝ์ ์
๋ ฅ์ด๋ ํ์ผ ์
๋ ฅ์์ ๋ฐ์ดํฐ์ ๋์ ๊ฐ์งํ๊ฑฐ๋ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉ๋จ.
๐EOF ๊ฐ์ง ๋ฐฉ๋ฒ
1. Java์์ EOF ๊ฐ์ง
ํ์ผ ์ฝ๊ธฐ :
ex) BufferedReader.readLine()์ด null์ ๋ฐํํ๋ฉด EOF
ex) Scanner.hasNestLine()์ด false๋ฅผ ๋ฐํํ๋ฉด EOF
์ฝ์ ์
๋ ฅ :
ex) EOF๋ Scanner.hasNext() ๋๋ Scanner.hasNextLine()์ ํตํด ๊ฐ์ง
๐Scanner.hasNext() vs Scanner.hasNextLine() ์ฐจ์ด์
๐งScanner.hasNext()
์
๋ ฅ ์คํธ๋ฆผ์ ๋ค์ ํ ํฐ(๊ณต๋ฐฑ์ด๋ ๊ฐํ์ผ๋ก ๊ตฌ๋ถ๋ ๋ฐ์ดํฐ)์ด ์๋์ง ํ์ธ.
๋ค์ ํ ํฐ์ด ์์ผ๋ฉด true๋ฅผ ๋ฐํํ๊ณ , ์์ผ๋ฉด false๋ฅผ ๋ฐํํจ
๐งScanner.hasNextLine()
์
๋ ฅ ์คํธ๋ฆผ์ ๋ค์ ์ค์ด ์๋์ง ํ์ธ. ์ค ๋จ์๋ก ๋ฐ์ดํฐ๋ฅผ ํ์ธํ๋ฉฐ, ๊ฐํ(์ค๋ฐ๊ฟ) ๋ฌธ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋์ํจ.
๋ค์ ์ค์ด ์์ผ๋ฉด true๋ฅผ ๋ฐํํ๊ณ , ์์ผ๋ฉด false๋ฅผ ๋ฐํํฉ๋๋ค.
2. Python์์ EOF ๊ฐ์ง
๐EOF(Linux/Unix/MacOs -> Ctrl + D ๋๋ Windows -> Ctrl + Z)๋ฅผ ์ฒ๋ฆฌํ๋ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ
1. Scanner๋ฅผ ์ฌ์ฉํ์ฌ EOF ์ฒ๋ฆฌ
Scanner ํด๋์ค์์ hasNext() ๋๋ hasNestLine() ๋ฉ์๋๋ฅผ ์ฌ์ฉํจ.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("์
๋ ฅํ์ธ์ (Ctrl+D๋ก EOF):");
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println("์
๋ ฅ๋ ๋ด์ฉ: " + line);
}
System.out.println("EOF์ ๋๋ฌํ์ต๋๋ค.");
}
}