지도를 사용하여 단어의 출현을 계산합니다. 여기에 코드가 있습니다.입력 단자 문제 및지도
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main() {
map<string,int>wordcount;
string s;
while (cin>> s && s!="red")
++wordcount[s];
while (cin>>s && s!="red")
cout << s << " " << wordcount[s] << endl;
return 0;
}
프로그램을 시작하고 단어를 입력하면 마지막 줄에 "red"라는 단어를 입력하지만 아무 것도하지 않습니다. 그럼 난 "빨간색"두 번째 입력이 출력 :
아무 키나 눌러
무엇이 잘못을 계속?
동일한 루프 테스트를 두 번 정확하게 사용하는 이유는 무엇입니까? 이것은 두 번째 루프가 실행될 수 없음을 의미합니다. –
@Marcelo : s! = "red"가 계산되기 전에 "s"가 새 값을 가져 오므로 두 번째 루프가 실행됩니다. –
@Mattias : 너 거기있어! 논리를 작성하는 것이 다소 모호한 방법이라고 제안 할 수 있습니까? 이것은 미리 지정된 입력 형식으로 당신에게 강제되어 있습니까? 입력 파일에서 어떤 키를 인쇄할지 (어떤 순서로), 아니면 모든 키를 인쇄하는 불필요한 방법인지 결정하기를 원하십니까? –