int main(void) { int rectangle = 0; struct Points p1; struct Points p2; struct Points p3; struct Points p4; FILE* fp = fopen("test.txt", "r"); while(1){ printf("Point #1:\n"); if ( fscanf(fp, " %lf %lf", &p1.x, &p1.y) != 2 ) invalid(); printf("%lf %lf \n", p1.x, p1.y); printf("Point #2:\n"); if ( fscanf(fp, " %lf %lf", &p2.x, &p2.y) != 2 ) invalid(); printf("%lf %lf \n", p2.x, p2.y); printf("Point #3:\n"); if ( fscanf(fp, " %lf %lf", &p3.x, &p3.y) != 2 ) invalid(); printf("%lf %lf \n", p3.x, p3.y); printf("Point #4:\n"); if ( fscanf(fp, " %lf %lf", &p4.x, &p4.y) != 2 ) invalid(); printf("%lf %lf \n", p4.x, p4.y); if (p1.x == p2.x && p3.x == p4.x){ if( p1.y == p4.y && p2.y == p3.y ) { does(); } else{ dont();} } else if(p1.x == p4.x && p2.x == p3.x){ if( p1.y == p2.y && p3.y == p4.y ) { does(); } else{ dont(); } } else { dont(); } if (feof(fp)) break; } return 0; }
int PrintUsage(char *progName) { std::cerr<<"usage:"<<std::endl <<progName<<tab<<"[-s settingsFile] [-ABCDEFGIJMORSUWXacdeghikmnprtuvxyz]"<<std::endl <<"[-l lexiconDir] [-f optimization-scope] "<<std::endl <<tab<<"[-qTaggingEquationNumber] [-jMinNumberCharsAnalyzed] [-yMaxDito]"<<std::endl <<tab<<"[-o123aclxz] [-s settingsFile] [testFile]"<<std::endl <<"input:"<<std::endl <<tab<<"i:"<<dont(xIgnoreCitation)<<"ignore citation marks"<<std::endl <<tab<<"K:"<<dont(xNoCollocations)<<"skip detection of collocations"<<std::endl <<"output:"<<std::endl <<tab<<"A:"<<dont(xPrintAllWords)<<"print all words"<<std::endl <<tab<<"B:"<<dont(xPrintLemma)<<"print lemma"<<std::endl <<tab<<"C:"<<dont(xPrintCorrectTag)<<"print correct tag"<<std::endl <<tab<<"D:"<<dont(xTestInflections)<<"test inflections"<<std::endl <<tab<<"E:"<<dont(xGenerateExtraWordTags)<<"generate extra word tags"<<std::endl <<tab<<"F:"<<dont(xCountFaults)<<"count faults"<<std::endl <<tab<<"G:"<<dont(xGuessRulesForWords)<<"guess rules for words"<<std::endl <<tab<<"H:"<<dont(xSelectUnknownLemmas)<<"select unknown lemmas"<<std::endl <<tab<<"I:"<<dont(xGenerateInflections)<<"generate inflections"<<std::endl <<tab<<"J:"<<dont(xPrintWordInfo)<<"print word info"<<std::endl <<tab<<"L:"<<dont(xListMultipleLemmas)<<"list multiple lemmas"<<std::endl <<tab<<"M:"<<dont(xPrintAllWordTags)<<"print all word-tags of words"<<std::endl <<tab<<"N:"<<dont(xListNewWords)<<"list all new words"<<std::endl <<tab<<"S:"<<dont(xPrintSelectedTag)<<"print selected tag"<<std::endl <<tab<<"U:"<<dont(xPrintUnknownLemmas)<<"print unknown lemmas"<<std::endl <<"tagging mode:"<<std::endl <<tab<<"b:"<<dont(xNoTagging)<<"skip tagging (useful for pre-tagged text)"<<std::endl <<tab<<"c:"<<dont(xMorfCapital)<<"use initial capital morphology analysis"<<std::endl <<tab<<"d:"<<dont(xTagTrigramsUsed)<<"use tag trigrams"<<std::endl <<tab<<"n:"<<dont(xMorfNonCapital)<<"use initial non-capital morphology analysis"<<std::endl <<tab<<"k:"<<dont(xMorfCommonSuffix)<<"use common suffix morphology analysis"<<std::endl <<tab<<"a:"<<dont(xAmbiguousNewWords)<<"tag new words ambiguously"<<std::endl <<tab<<"u:"<<dont(xAnalyzeNewWords)<<"analyze new words"<<std::endl <<tab<<"P:"<<dont(xCompoundRequirePrefix)<<"require prefix when analyzing compunds"<<std::endl <<tab<<"w:"<<dont(xNewWordsMemberTaggingOnly)<<"tag new words by tag member statistics only"<<std::endl //jonas <<tab<<"X:"<<dont(xSimplifyText)<<"simplify text"<<std::endl <<"statistics:"<<std::endl <<tab<<"p:"<<dont(xCountPunctuationMarksAsWords)<<"count punctuation marks as words"<<std::endl <<tab<<"e:"<<dont(xEvaluateTagging)<<"evaluate tagging"<<std::endl <<"optimization:"<<std::endl <<tab<<"g:"<<dont(xGoldenRatio)<<"use golden ratio"<<std::endl <<tab<<"o:"<<dont(xOptimize)<<"optimize"<<std::endl <<tab<<"O:"<<dont(xOptimizeImportantParameters)<<"optimize important parameters only"<<std::endl <<tab<<"r:"<<dont(xRandomize)<<"randomize"<<std::endl <<"diagnostics:"<<std::endl <<tab<<"h:"<<dont(xCheckLexicons)<<"check lexicons"<<std::endl <<tab<<"m:"<<dont(xTestFeatures)<<"test features"<<std::endl <<tab<<"R:"<<dont(xRepeatTest)<<"do repeat test"<<std::endl <<tab<<"t:"<<dont(xTakeTime)<<"take time"<<std::endl <<tab<<"v:"<<dont(xVerbose)<<"verbose"<<std::endl <<tab<<"x:"<<dont(xCheckLetters)<<"check letters"<<std::endl <<tab<<"z:"<<dont(xReadSettings)<<"read tagger parameters from 'settings'-file"<<std::endl // jonas <<tab<<"W:"<<dont(xWarnAll)<<"warn for all suspicious things"<<std::endl <<"if no lexicon directory is given, the program uses the path"<<std::endl; const char * temp = getenv("DEVELOPERS_TAGGER_LEXICON"); if(!temp) temp = ""; // seg fault on 'std::cerr << (char*) 0 << std::endl;' std::cerr <<"in environment variable DEVELOPERS_TAGGER_LEXICON = "<< temp <<std::endl; temp = getenv("DEVELOPERS_TAGGER_OPT_TEXT"); if (!temp) temp = ""; std::cerr <<"if no test text is given, the program uses the path"<<std::endl <<"in environment variable DEVELOPERS_TAGGER_OPT_TEXT = "<<temp<<std::endl; return 0; }