#ifndef QSTD_H
#define QSTD_H
#include <QTextStream>
#include <QFile>
#include <QString>
/** @short helper objects and functions which help reduce the
need for char[] and the standard library.
defines three @ref QTextStream instances
which behave like the c++ standard iostreams, bound to the
standard in/out/error.
Also provided, some helper functions for writing
interactive stdin/stdout applications.
*/
//start
namespace qstd {
/** @short An alias for standard input
*/
extern QTextStream cin; /* declared only, defined in the .cpp file */
/** @short An alias for standard output
*/
extern QTextStream cout;
/** @short An alias for standard error
*/
extern QTextStream cerr;
/** yes/no prompt
interactive stdin UI - prompts user with
a yes/no question. Repeatedly-asks
until user supplies a valid answer.
@param yesNoQuestion the yes/no question
@return true/false depending on what the
user responded.
*/
bool yes(QString yesNoQuestion);
/** Convenience function that feeds a specific question
to the yes() function.
@usage do {.....} while(more ("foobar"));
so that user sees the question: "Another foobar (y/n)? "
@param name of the item being handled by the loop.
*/
bool more(QString prompt);
/** A function for safely taking an int from the keyboard.
Takes data into a QString and tests to make sure it
can be converted to int before returning.
@param base allows choice of number base.
@return returns validated int.
*/
int promptInt(int base = 10);
/** A function for safely taking a double from the keyboard.
Takes data into a QString and tests to make sure it
can be converted to double before returning.
@return returns validated int.
*/
double promptDouble();
/** Complete dialog for opening a file for output.
Asks user for file name, checks to see if
file already exists and, if so, asks the user if
it is ok to overwrite.
@param Reference QFile parameter is set to point
to the (eventually) opened file.
*/
/** @short Dialog for a output file prompt
*/
void promptOutputFile(QFile& outfile);
/** @short Dialog for input file prompt */
void promptInputFile(QFile& infile);
//end
}
#endif
syntax highlighted by Code2HTML, v. 0.9.1