读书人

哪位高手能告诉小弟我为什么每次都会

发布时间: 2012-10-16 09:57:37 作者: rapoo

谁能告诉我,为什么每次都会输出个 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; 

读书人网 >C++

热点推荐