标准格式的QT main函数代码,值得借鉴
#include <QCoreApplication>
#include <QFile>
#include <QStringList>
#include <QTextStream>
#include <QXmlStreamReader>
class XmlStreamLint
{
public :
Q_DECLARE_TR_FUNCTIONS ( XmlStreamLint)
} ;
int main ( int argc, char * argv[ ] )
{
enum ExitCode
{
Success,
ParseFailure,
ArgumentError,
WriteError,
FileFailure
} ;
QCoreApplication app ( argc, argv) ;
QTextStream errorStream ( stderr ) ;
if ( argc != 2 )
{
errorStream << XmlStreamLint:: tr (
"Usage: xmlstreamlint <path to XML file>\n" ) ;
return ArgumentError;
}
QString inputFilePath ( QCoreApplication:: arguments ( ) . at ( 1 ) ) ;
QFile inputFile ( inputFilePath) ;
if ( ! QFile:: exists ( inputFilePath) )
{
errorStream << XmlStreamLint:: tr (
"File %1 does not exist.\n" ) . arg ( inputFilePath) ;
return FileFailure;
} else if ( ! inputFile. open ( QIODevice:: ReadOnly) ) {
errorStream << XmlStreamLint:: tr (
"Failed to open file %1.\n" ) . arg ( inputFilePath) ;
return FileFailure;
}
QFile outputFile;
if ( ! outputFile. open ( stdout , QIODevice:: WriteOnly) )
{
errorStream << XmlStreamLint:: tr ( "Failed to open stdout." ) ;
return WriteError;
}
QXmlStreamReader reader ( & inputFile) ;
QXmlStreamWriter writer ( & outputFile) ;
while ( ! reader. atEnd ( ) )
{
reader. readNext ( ) ;
if ( reader. error ( ) )
{
errorStream << XmlStreamLint:: tr (
"Error: %1 in file %2 at line %3, column %4.\n" ) . arg (
reader. errorString ( ) , inputFilePath,
QString:: number ( reader. lineNumber ( ) ) ,
QString:: number ( reader. columnNumber ( ) ) ) ;
return ParseFailure;
} else
writer. writeCurrentToken ( reader) ;
}
return Success;
}