home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / lang / c / 12874 < prev    next >
Encoding:
Internet Message Format  |  1992-08-27  |  1.6 KB

  1. Path: sparky!uunet!cs.utexas.edu!sdd.hp.com!uakari.primate.wisc.edu!usenet.coe.montana.edu!news.u.washington.edu!milton!adrian
  2. From: adrian@milton.u.washington.edu (Adrian Mariano)
  3. Newsgroups: comp.lang.c
  4. Subject: scanf portability (?) problem
  5. Keywords: scanf
  6. Message-ID: <adrian.714869816@milton>
  7. Date: 26 Aug 92 22:56:56 GMT
  8. Sender: news@u.washington.edu (USENET News System)
  9. Organization: University of Washington
  10. Lines: 31
  11.  
  12.  
  13. I'm trying to parse lines which look like the ones below.  Most lines
  14. will look like the top one, but in a few cases, the text in the second
  15. and or third set of brackets will be 5 characters instead of 3
  16. characters (like the second line below).
  17.  
  18. [ 0]      nimmox [ 6k] vs.          cd [ 9k] ( 99   19    0    5.5)
  19. [ 5]         joe [IGS92] vs.     xxxyyyz [???] ( 33   11    3    4.5) 
  20.  
  21.  
  22. In order to do this, I wrote the following scanf pattern:
  23.  
  24.             "[%2d]%12s [%[^]]] vs.%12s [%[^]]] (%3d %d %d %f)\n"
  25.  
  26.                           ^               ^
  27.                           |               |
  28.                           -----------------
  29.                                   |
  30.                   |
  31.                           These are the troublemakers
  32.  
  33. Earlier, the program whose output I am parsing would only generate
  34. lines which look like the first one above.  I assumed that the text in
  35. brackets was always three characters, and parsed it with %3c.  This
  36. worked correctly everywhere I tried it.
  37.  
  38. With the change, everything works fine on all machines I've tried but
  39. one machine running Dynix.  Is there something I can do to make this
  40. scanf pattern work everywhere?
  41.  
  42. Please email responses.
  43.