fork download
  1. #include <stdio.h>
  2.  
  3. #define WIDTH_STR(width) #width
  4. #define FIXED_FIELD(width) "%" WIDTH_STR(width)
  5. #define TERMINAL(set) "[^" set "]%*1[" set "] "
  6.  
  7. #define W 1024
  8. int parse(FILE *f) {
  9. char x[W+1], y[W+1], z[W+1];
  10. if (fscanf(f, FIXED_FIELD(W) TERMINAL(":"), x) <= 0) { return EOF; }
  11. if (fscanf(f, FIXED_FIELD(W) TERMINAL(","), y) <= 0) { return EOF; }
  12. if (fscanf(f, FIXED_FIELD(W) TERMINAL("\n"), z) <= 0) { return EOF; }
  13. printf("<%s>\n", x);
  14. printf("<%s>\n", y);
  15. printf("<%s>\n", z);
  16. return 0;
  17. }
  18.  
  19. int main(void) {
  20. printf("parse returned: %d\n", parse(stdin));
  21. }
Success #stdin #stdout 0s 9432KB
stdin
Pancho: Juanka,Cony
stdout
<Pancho>
<Juanka>
<Cony>
parse returned: 0