r168: *** empty log message ***
[ctsim.git] / libctsim / phantom.cpp
index ccf728a11d503c34c9ea1d507461c60efd1d78dd..09245b2205332b7ba02d2df14f0e63d66c5dbe97 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: phantom.cpp,v 1.14 2000/07/31 14:48:35 kevin Exp $
+**  $Id: phantom.cpp,v 1.15 2000/08/02 18:06:00 kevin Exp $
 **
 **  This program is free software; you can redistribute it and/or modify
 **  it under the terms of the GNU General Public License (version 2) as
@@ -204,19 +204,25 @@ Phantom::createFromFile (const char* const fname)
     return (false);
 
   do {
-    double cx, cy, u, v, rot, dens;
-    char pelemtype[80];
-    int n = fscanf (fp, "%79s %lf %lf %lf %lf %lf %lf",
-               pelemtype, &cx, &cy, &u, &v, &rot, &dens);
+    if (! feof(fp)) {
+      double cx, cy, u, v, rot, dens;
+      char pelemtype[80];
+      char str[1024];
+      fgets (str, sizeof(str), fp);
+      int n = sscanf (str, "%79s %lf %lf %lf %lf %lf %lf", pelemtype, &cx, &cy, &u, &v, &rot, &dens);
     
-    if (n == EOF || n == 0) {  /* end of file */
-      stoploop = true;
-      retval = false;
-    } else if (n != 7) {
-      stoploop = true;
-      retval = false;
+      if (n == EOF || n == 0) {        /* end of file */
+       stoploop = true;
+       retval = false;
+      } else if (n != 7) {
+       stoploop = true;
+       retval = false;
+      } else {
+       addPElem (pelemtype, cx, cy, u, v, rot, dens);
+       retval = true;
+      }
     } else {
-      addPElem (pelemtype, cx, cy, u, v, rot, dens);
+      stoploop = true;
       retval = true;
     }
   } while (stoploop == false);