long fread_flag(FILE *fp) { int number; char c; bool negative = false; do c = (char)getc(fp); while (isspace((int)c)); if (c == '-') { negative = true; c = (char)getc(fp); } number = 0; if (!isdigit((int)c)) { while (('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z')) { number += flag_convert(c); c = (char)getc(fp); } } while (isdigit((int)c)) { number = number * 10 + (int)c - (int)'0'; c = (char)getc(fp); } if (c == '|') number += fread_flag(fp); else if (c != ' ') ungetc(c, fp); if (negative) return -1 * number; return number; }
long fread_flag(FILE *fp) { int number = 0; char c; bool negative= FALSE; do { c = getc(fp); } while (isspace(c)); if (c == '-') { negative = TRUE; c = getc(fp); } if (!isdigit(c)) { while (('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z')) { number += flag_convert(c); c = getc(fp); } } while (isdigit(c)) { number = number * 10 + c - '0'; c = getc(fp); } if (c == '|') number += fread_flag(fp); else if (c != ' ') ungetc(c, fp); if (negative) return -1 * number; return number; }