我有C ++代码。它读取文件并在该文件中查找字谜(“字典”)。

while (1)
{
    infile.getline(buff, sizeof(buff));
    if(infile.eof()) break;
    sbuff = buff;
    sort(sbuff.begin(), sbuff.end());
    an.insert(pair<string, string>(sbuff, buff));
}

im = an.begin();
ane = an.end();

vector<multimap<string, string>::iterator> chg;

chg.push_back(im);

while (++im != ane)
{
    chg.push_back(im);
    if((*im).first != (*chg[0]).first)
    {
        if(chg.size() > 2)
        {
            for(unsigned int i=0; i < chg.size() - 1; i++);
        cout << endl;
        }

        chg.clear();
        chg.push_back(im);
    }

}

if(chg.size() > 1)
    for(unsigned int i=0; i < chg.size(); i++)
        cout << (*chg[i]).second << endl;
    infile.close();
}


编译后,将显示所有空行的早午餐。
在Fedora上的MacOS上,结果相同

什么不对?

最佳答案

此for循环在您的代码中不执行任何操作:

 {
    for(unsigned int i=0; i < chg.size() - 1; i++);
    cout << endl;
 }


您可能不想在其结尾加上;。如果将其删除,尽管您不会在屏幕上cout键入任何文本,但它只会给您很多空行。

关于c++ - 整理文件进出C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21254738/

10-13 06:11