I have just written small program that reads txt file and populates vector of strings (STL). Everything was ok. when I worked with small files but when I incresed size of file after 13988 lines program looks like frozen :-( Could someone put on this issue some light ? I tried to change vector to different structure i.e. list or stack but without success - stil the same behavior. Does anyone know where is problem ?
Code:#include <string> #include <iostream> #include <ctime> #include <fstream> #include <vector> #include <stdexcept> using namespace std; int main(void) { clock_t start, end, time; char logLine[512]; int nOfLine = 0, nOfOmitedLine = 0; long int i = 0; vector<string> serverLog; start = clock(); // start clock system ("cls"); /* Or system ("clear"); for Unix */ // // Open the file and check for errors // ifstream logFile("srv.log"); if (!logFile) { throw invalid_argument("Unable to open file\n"); } // // read log lines from server.log to vector // while(!logFile.eof()) // read log lines from server.log to vector { logFile.getline(logLine,512); nOfLine++; if (strncmp(logLine, "T\t", 2) == 0) { serverLog.push_back(logLine); cout << serverLog.size() << endl; } else { nOfOmitedLine++; } } logFile.close(); end = clock(); // stop clock time = ( end - start ) / CLOCKS_PER_SEC; //compute time of execution cout << "Vector size: " << serverLog.size() << endl; cout << "Vector capacity: " << serverLog.capacity() << endl; cout << "Number of read lines: " << nOfLine << endl; cout << "Number of omited lines: " << nOfOmitedLine << endl; if (time < 1) { cout << "Time (sec): < 1"<< endl; } else { cout << "Time (sec): " << time << endl; } return(0); }



LinkBack URL
About LinkBacks


