What does the statement
cout << "first 'needle' found at: " << int(found) << endl;
It means not found.
It is usually defined like so:
static const size_t npos = -1;
It is better to compare to npos instead of -1 because the code is more legible.