http://www.dreamincode.net/code/snippet591.htm
#include <iostream>
#include <limits>
using namespace std;
int main() {
int number = 0;
cout << "Enter an integer: ";
cin >> number;
cin.ignore(numeric_limits<int>::max(), '\n');
if (!cin || cin.gcount() != 1)
cout << "Not a numeric value.";
else
cout << "Your entered number: " << number;
return 0;
}
Изменено, конечно, для работы с argv вместо cin.
Это может быть не совсем то, что вы хотите - запустите несколько тестов и проверьте вывод, если вы не понимаете, что он делает.
-Adam