为什么int count在进入循环时会从1跳到4?C++

Non*_*biz 0 c++ counter loops increment visual-studio

当我进入循环时,我的"计数器"从1跳到4.有任何想法吗?代码和输出如下:

    static bool harvestLog()
{
    ifstream myFile("LOGS/ex090716.log");
    if (myFile.fail()) {cout << "Error opening file";return 1;}
    else
    {
        cout << "File opened... \n";
        string line;
        string field;
        int cs_uri_stemLocation = 0;
        int csReferrerLocation = 0;
        int count = 1;
        cout << "-" << count << "-";
        while( getline(myFile, line) ) {
            if ( strstr(line.c_str(), "cs-uri-stem") &&
                (strstr(line.c_str(), "cs(Referer)") || strstr(line.c_str(), "cs(Referrer)")) )
            {
                cout << "-" << count << "-";
                cout << "Found log format: \n";
                istringstream foundField(line);
                while (!foundField.eof())
                {
                    cout << "-" << count << "-";
                    foundField >> field;
                    if (field == "cs-uri-stem") {cs_uri_stemLocation = count;}
                    if (field == "cs(Referer)" || field == "cs(Referrer)") {csReferrerLocation = count;}
                    cout << "cs-uri-stem: " << cs_uri_stemLocation << ". ";
                    cout << "cs(Referer): " << csReferrerLocation << ". ";
                    cout << "COUNT: " << count << endl;
                    count++;
                }
                cout << "Found field cs-uri-stem at position " << cs_uri_stemLocation << "." << endl;
                cout << "Found field cs(Referer) at position " << csReferrerLocation << "." << endl;
                count = 1;
            }
            else
            {
                count = 1;
                istringstream foundField(line);
                while (!foundField.eof())
                {
                    foundField >> field;
                    //if (count == cs_uri_stemLocation) cout << field << endl;
                    count++;
                }

                //cmatch results;
                //regex rx("(?:p|q)(?:=)([^ %]*)");
                //regex_search(line.c_str(), results, rx);
                //string referringWords = results[1];

                //cout << referringWords;
            }
        }
    myFile.close();
    return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

-1--4-找到日志格式:
-4-cs-uri-stem:0.cs (Referer):0.COUNT:4
-5-cs-uri-stem:0.cs(Referer):0.COUNT :5
-6-cs-uri-stem:0.cs(Referer):0.COUNT:6
-7-cs-uri-stem:0.cs(Referer):0.COUNT:7
-8-cs-uri -stem:0.cs(Referer):0.COUNT:8
-9-cs-uri-stem:0.cs(Referer):0.COUNT:9
-10-cs-uri-stem:10.cs(Referer) ):0.COUNT:10
-11-cs-uri-stem:10.cs(Referer):0.COUNT:11
-12-cs-uri-stem:10.cs(Referer):0.COUNT:12
- 13-cs-uri-stem:10.cs(Referer):0.COUNT:13
-14-cs-uri-stem:10.cs(Referer):0.COUNT:14
-15-cs-uri-stem: 10. cs(Referer):0.COUNT:15
-16-cs-uri-stem:10.cs(Referer):16.COUNT:16
-17-cs-uri-stem:10.cs(Referer):16 .COUNT:17
-18-cs-uri-stem:10.cs(Referer):16.COUNT:18
-19-cs-uri-stem:10.cs(Referer):16.COUNT:19
-20-cs -uri-stem:10.cs(Referer):16.COUNT:20
在位置10处找到字段cs-uri-stem.
在位置16处找到字段cs(Referer).

Car*_*ada 6

我敢打赌,它正在经历

                        while (!foundField.eof())
                        {
                                foundField >> field;
                                //if (count == cs_uri_stemLocation) cout << field << endl;
                                count++;
                        }
Run Code Online (Sandbox Code Playgroud)

你永远不会在这个分支后重置它