std :: getline返回错误的大小

时间:2013-03-16 20:53:03

标签: c++ string map vector getline

  1. getline()出错了,取正确但仍然是大小的值仍为26。

  2. 我每次尝试打印时都会打印一个字符并且所有打印都是正确的,因此它正确地接收了字符串,但是没有存储它们?

  3. 我已附上以下代码以参考

  4. 如果您需要在其他地方找出问题,请向我询问整个项目。

    void TldPart::PreloadTLDs()
    {
        ifstream in(TLD_TEST_FILE);
    
        if(in)
        {
            string tld;
            for(int i =0; !in.eof(); i++)
            {
                getline(in,tld);
    
                String myString = tld.c_str();
    
                //cout << myString.GetLength() << endl;
    
                for(int j=0; j<myString.GetLength();j++)
                {
                    myString[j]=tolower(myString[j]);
                }
    
                //cout << myString << endl;
                ValidTLDs.insert(pair<String,int>(myString,i));
                //ValidTLDs[myString] = true; //if the map was bool
            }
            in.close();
            cout << ValidTLDs.size(); //Printing the size //prints 26
        }
    }
    

0 个答案:

没有答案