哪位高手能告诉小弟我,为什么每次都会输出个 z

谁能告诉我,为什么每次都会输出个 z
C/C++ code
#include <vector>
 #include <iostream>
 #include <string>
 #include <map>
 using namespace std;
 
 int main()
 {
     int n;
     cin >> n;
     string s;
     vector <string> vec;
     while(getline(cin,s))
     vec.push_back(s);
     map<int,char> alp;
     alp[0]='z';//就是这个z,我没想输出它啊,好烦
     for(int i= 1,j=0;i<26; ++i,++j)
         alp[i]=char('a'+j);
     for(vector<string>::iterator ivec = vec.begin();
         ivec != vec.end();
         ++ ivec)
     {
         int sum=0;
         for(int i = 0; i < (*ivec).size();++i)
         {
             char ch;
             ch = (*ivec)[i];
             if(islower(ch))
                 ++sum;
         }
         int m=sum%26;
         cout << "     " << alp[m] <<endl;
     }
     return 0;
 }

谁能告诉我,为什么每次都会输出个 z,不管我输出什么,第一行总是这个 z,后面才是我真的想输出地答案。

------解决方案--------------------
因为cin>>n之后留下的回车被getline吞掉了,永远第一个字符串都是一个空串。
------解决方案--------------------
C/C++ code
cout << "     " << alp[m] <<endl;