POJ2503:Babelfish 为何会Output Limit Exceeded?


/*
Code:POJ2503
Problem:Babelfish
*/
#include<iostream>
#include<map>
#include<string>
using namespace std;
int main(){
    map<string,string>dictionary;
    map<string,bool>appear;
    string English,dialect;
    char input[11];
    char c;
    c=getchar();
    while(c!='\n'){
    scanf("%s",input);
    English=input;
    English.insert(0,1,c);
    getchar();//消灭空格
    scanf("%s",input);
    getchar();//消灭回车
    dialect=input;
    dictionary[dialect]=English;
    appear[dialect]=true;
    c=getchar();
    }
    c=getchar();
    while(c!='\n'){
        scanf("%s",input);
        dialect=input;
        dialect.insert(0,1,c);
        if(appear[dialect]!=true) cout<<"eh"<<endl;
        else cout<<dictionary[dialect]<<endl;
        getchar();//消灭dialect后的回车
        c=getchar();
    }
    return 0;
}

求解!谢谢各位了

Output Limit Exceeded 多数发生在递归遍历的过程中,多输出了一些内容(比如说空格)。Output Limit Exceeded还指如果输入某一组数据,你的程序返回的结果是一直输出某个结果,死循环输出的那种。