Wyszukiwanie pliku tekstowego C ++ dla określonego łańcucha i zwracanie numeru wiersza, w którym ten ciąg jest włączony

Czy w c ++ istnieje konkretna funkcja, która może zwrócić numer linii określonego ciągu, który chcę znaleźć?

ifstream fileInput;
int offset;
string line;
char* search = "a"; // test variable to search in file
// open file to search
fileInput.open(cfilename.c_str());
if(fileInput.is_open()) {
    while(!fileInput.eof()) {
        getline(fileInput, line);
        if ((offset = line.find(search, 0)) != string::npos) {
            cout << "found: " << search << endl;
        }
    }
    fileInput.close();
}
else cout << "Unable to open file.";

Chcę dodać kilka kodów w:

    cout << "found: " << search << endl;

Spowoduje to zwrócenie numeru wiersza, po którym następuje wyszukiwany ciąg.

questionAnswers(2)

yourAnswerToTheQuestion