/** * @brief This function inputs an integer * @param [in/out] *i - pointer to the integer * @param [in] use - limit usage flag ( USELIM/NOLIM ) * min - lower bound * upper bound * @return unsigned char 0 - success * 1 - error ( null pointer ) **/ unsigned char InputInt ( int *i, unsigned char use, int min, int max ) { if ( i==NULL ) return ERROR; int retc, in; if ( use==USELIM ) { retc=scanf ( "%i", &in ) ; CleanInput ( ) ; if ( ! ( ( retc > 0 ) && ( in > min ) && ( in < max ) ) ) { do { printf ( "Sorry, try again: " ) ; retc=scanf ( "%u", &in ) ; CleanInput ( ) ; } while ( ! ( ( retc > 0 ) && ( in > min ) && ( in < max ) ) ) ; } } else { retc=scanf ( "%i", &in ) ; CleanInput ( ) ; if ( ! ( retc > 0 ) ) { do { printf ( "Sorry, try again: " ) ; retc=scanf ( "%u", &in ) ; CleanInput ( ) ; } while ( ! ( retc > 0 ) ) ; } } *i=in; return SUCCESS; }
/** * @brief This function gets user input ( char ) * @param [in] *possible - pointer to char array of possible * input values * @param [in/out] *pc - pointer to char that we input * @return unsigned char SUCCESS - success * ERROR - error **/ unsigned char InputChar ( const char *possible, char *pc ) { if ( possible==NULL ) { return ERROR; } else { char a; scanf ( "%c", &a ) ; CleanInput ( ) ; char needle[2]; needle[0]=a; needle[1]='\0'; if ( strstr ( possible, needle ) ==NULL ) { do { printf ( "Sorry, try again: " ) ; scanf ( "%c", &a ) ; CleanInput ( ) ; needle[0]=a; } while ( strstr ( possible, needle ) ==NULL ) ; *pc=a; return SUCCESS; } else { *pc=a; //printf ( "%c\n", a ) ; //printf ( "%s\n", pc ) ; return SUCCESS; } } }
//------------------Main function------------------------------- int main() { Disclaimer(); //put da code here CleanInput(); return 0; }
/** * @brief This function displays license agreement **/ void Disclaimer ( ) { printf ( "This is an app that ...\n\n" ) ; printf ( "Copyright 2014 by mnxoid, \n\n" ) ; printf ( "This software is the confidential and proprietary information\n" ) ; printf ( "of mnxoid (\"Confidential Information\") . You\n" ) ; printf ( "shall not disclose such Confidential Information and shall use\n" ) ; printf ( "it only in accordance with the terms of the license agreement\n" ) ; printf ( "you entered into with mnxoid.\n\n" ) ; printf ( "By pressing [ENTER] you confirm that you are NOT A GEODESIST\n" ) ; CleanInput ( ) ; //here CleanInput is used as a safe getchar ( ) }
BOOL CS34XML::Parse() { char *pData = &m_SrcBuffer[0]; char *pSeps = "\n"; char *pToken; pToken = strtok(pData, pSeps); if (pToken) { CleanInput(pToken); AddToList(pToken); } while (pToken != NULL ) { pToken = strtok(NULL, pSeps); if (pToken) { CleanInput(pToken); AddToList(pToken); } } return TRUE; }
/** * @brief This function displays an error and exits * @param [in] msg - error message **/ void Error(const char *msg) { perror(msg); CleanInput(); exit(0); }