728x90

EOF 2

C++] 공백을 포함하는 문자열 여러 줄 입력 받기

문자열 처리 문제는 대부분 공백을 포함하는 한 문장을 다루는 문제가 많다.간혹 그 이상의 문장을 처리해야 하는 문자열 처리 문제가 주어지는 경우가 있는데 이 때 공백을 포함하는 문장을 EOF가 입력될 때까지 문장을 입력 받고 싶다면 아래처럼 처리하면 된다. vector s; string str; while (getline(cin, str)) s.push_back(str); 문장의 수가 예상 가능하다면 동적 배열 vector가 아닌 정적 배열을 선언해도 좋다.

백준] 입력의 테스트 케이스가 존재하지 않는 경우

대부분의 문제는 테스트 케이스를 입력 받고 그 케이스에 따른 입력값을 받거나,테스트 케이스의 수를 제한하지 않는다고 하더라도 종료를 뜻하는 입력 값을 받는 경우가 대부분이다.그러다 간혹 테스트 케이스의 입력도 없고, 종료 조건도 명시되어 있지 않은 문제들이 있는데EOF의 개념이 없는 사람들은 간단한 문제(심지어 a+b)임에도 풀지 못하는 경우가 있다. 아래 문제는 테스트 케이스 개수나, 프로그램을 종료하는 특별한 입력값을 요구하지 않는다.EOF를 입력받을 때 프로그램을 종료하는데, C와 C++에서 이 EOF는 아래와 같이 처리할 수 있다. https://www.acmicpc.net/problem/10951 while(cin>>a>>b) while(scanf("%d %d",&a,&b)!=EOF)

728x90