#include // for std::cout, std::cerr, std::cin, std::getline #include // for std::vector using namespace std; // never do this in a header file int main(int argc, char *argv[]) { // copy the arguments to a vector of strings (vector is a dynamic array on the heap) vector args(argv, argv + argc); string name; // this is a string on the stack if (args.size() > 1 && args[1] == "--help") { cout << "USAGE: " << argv[0] << endl; // print a line to stdout return 0; // exit with code 0 (success) } else { cerr << "ERROR: unknown option" << endl; // print a line to stderr return 1; // exit with code 1 (error) } cout << "What is your name?" << endl; // print a line to stdout getline(cin, name); // read a line from stdin into name cout << "Hello, " << name << endl; // print a line to stdout } // end of main, return 0 is implicit here (success)