문자열 입력 cin limited10 안녕하세요? 문자열 입력을 잘 모르겠습니다. Automated Judge Script 문제를 풀고 있습니다. http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=31&page=show_problem&problem=1129 [입력] 2 The answer is: 10 The answer is: 5 3 The answer is: 10 The answer is: 5 ... 문자열을 string class에 담고 싶습니다. int n; string submit[100], answer[100]; cin >> n; for ( int i=0; i<n; i++ ) getline(cin, submit[i]); cin >> m; for ( int i=0; i<n; i++ ) getline(cin, answer[i]); 이런식으로 짰더니 m값이 입력이 안됩니다. 또 istringstream을 쓰자고 하니, string line; getline(cin, line); istringstream iss(line); //iss iss >> n; for ( int i=0; i<n; i++ ) getline(cin, submit[i]); getline(cin, line); istringstream iss2(line); //iss2 iss2 >> m; //iss, iss2 이렇게 다른 이름을 쓰니까 되긴 되덥디다. ICPC할 때 문자열을 보통 어떻게 처리하나요? 꼭 Cpp 스타일을 고집하고 싶지는 않으나 std::string 을 포기하고 싶지도 않습니다. 좋은 조언 부탁합니다! ^^ 12년 전
2개의 댓글이 있습니다. Being 첫 번째 코드의 경우는 줄바꿈 문자 직전에서 토크나이징되어서 그 직후 getline의 호출이 의도대로 동작하지 않아서 문제가 발생합니다. 해결책으로는, 더미로 getline을 한 번 쓰거나, 아래 코드와 같이 모든 입력을 getline을 기준으로 하거나, scanf 등의 경우 format string에 \n을 포함시키는 방법이 일반적입니다. 12년 전 link limited10 Being씨 감사합니다. 꽤 고생했는데 덕분에 갈피를 잡았습니다. ^^ 12년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
limited10
안녕하세요?
문자열 입력을 잘 모르겠습니다.
Automated Judge Script 문제를 풀고 있습니다.
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=31&page=show_problem&problem=1129
문자열을 string class에 담고 싶습니다.
이런식으로 짰더니 m값이 입력이 안됩니다.
또 istringstream을 쓰자고 하니,
//iss, iss2 이렇게 다른 이름을 쓰니까 되긴 되덥디다.
ICPC할 때 문자열을 보통 어떻게 처리하나요?
꼭 Cpp 스타일을 고집하고 싶지는 않으나 std::string 을 포기하고 싶지도 않습니다.
좋은 조언 부탁합니다! ^^
12년 전