ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
다만 이 방식이 정공법적인것은 아니라고 한다!!
While the difference is not obvious in smaller programs, endl performs significantly worse than \n because of the constant flushing of the output buffer.
라고 한다.. cout과 endl이 대칭이 맞아 endl을 주로 사용했는데 앞으로는 개행문자에 조금 더 익숙해져야겠다!
java에서는 Scanner를 쓸 때 hasNext()를 썼고,
bufferedReader에서는 readline이 null일때 eof 처리를 할 수 있었는데,
여기를 참고하면 c++에서는
1. scanf()가 입력받은 인자의 개수로 파악
2. scanf()와 EOF와 EOF를 비교
3. EOF가 -1임을 이용
4. cin.eof()를 이용
하라고 한다.
int a, b;
while (!cin.eof()) {
cin >> a >> b;
cout << a + b << '\n';
}
처음에 위와 같이 4번 방식을 사용했는데, 이는 불가능
파일을 입력 받고나서, 그게 eof인지 확인을 해야하는데, 그러지 않으니 입력대기 상태에서 프로그램이 종료되지 않기때문.
int* arr = new int[20];
int* arr = new int[20]();
int arr[20] = {0,}
1같이 괄호 없이 동적할당하면 초기화가 되지않는다.
std::fill_n 함수를 통해 array를 다음과 채워넣을 수 있다.
std::fill_n(arr, 20, -1);