반응형
백준 BOJ 알고리즘 오답노트 - 1152 번
C++에서 파일의 끝을 입력하면 cin은 false을 반환한다.
그러나 파일 입출력을 통해 파일을 주지 않으면
콘솔에서는 직접 파일의 끝임을 알려야한다.
윈도우는 ctrl+Z
UNIX ctrl+D
BOJ은 파일형태로 주기때문에 EOF(end of file)가 포함되어 있다.
//1152#include<iostream>#include<string>using namespace std;int main(){int len = 0; string tmp;while(cin>>tmp){ len++;}cout<<len;return 0;}//FB1#include <iostream>#include <string>using namespace std;int main(void){string str;for (int i = 0; i < 100 && !cin.eof(); i++){getline(cin, str);cout << str << endl;}return 0;}jung2381187 9달 전 2좋아요모든 파일의 끝에는 우리가 눈으로 볼 순 없지만 EOF라는 표시가 붙어 있습니다.파일의 끝(End Of File)이란 뜻이죠.cin으로 입력을 받으려 하는데 EOF가 읽히면 입력 받기가 취소되고 cin.eof()가 true가 됩니다.터미널에서 직접 입력을 넣으실 땐 EOF를 수동으로 넣어주셔야 합니다.윈도우 기준으로는 Ctrl + Z, UNIX 기준으로는 Ctrl + D입니다. BOJ에서는 입력을 넣을 때 파일로 주기 때문에 EOF가 붙어 있습니다.
반응형
'알고리즘 > 백준[BOJ] 오답노트' 카테고리의 다른 글
C++ vector에 중복된 인자 제거하기 - 백준 알고리즘 오답노트 1181 (0) | 2019.03.02 |
---|---|
C++ rotate 함수 - 백준 알고리즘 오답노트 10812 (0) | 2019.03.02 |
c++ vector 초기 크기 인자값 문제 - 백준 알고리즘 오답노트 10819 (0) | 2019.02.02 |
C++ cin/cout 입출력 성능 개선 - 백준 알고리즘 오답노트 15552 (0) | 2019.02.02 |
C++cin/cout 시간초과 해결 - 백준 알고리즘 오답노트 10815 (0) | 2019.02.02 |