67 bool size_read =
true;
69 int commodities_read = 0;;
75 s.getline(line, 1000);
76 if (s.gcount() >= 999) {
77 printf(
"Input file is incorrect. A line more than 1000 characters is found.\n");
82 if (sscanf(line,
"p%s%i%i%i",
84 printf(
"Input file is incorrect. (p line)\n");
95 if (sscanf(line,
"d%i%i%i",
96 &commodities[commodities_read].source,
97 &commodities[commodities_read].sink,
98 &commodities[commodities_read].demand) != 3) {
99 printf(
"Input file is incorrect. (d line)\n");
105 if (sscanf(line,
"a%i%i%i%i%lf",
106 &
arcs[arcs_read].tail,
107 &
arcs[arcs_read].head,
110 &
arcs[arcs_read].weight) != 5) {
111 printf(
"Input file is incorrect. (a line)\n");
114 sumweight += fabs(
arcs[arcs_read].weight);
118 if (sscanf(line+1,
"%s", name) <= 0) {
119 printf(
"Input file is incorrect. (non-recognizable line)\n");
127 printf(
"Input file is incorrect. size_read=%i arcs_read=%i commodities_read=%i\n",
128 size_read, arcs_read, commodities_read);
BCP_buffer & pack(const T &value)
Pack a single object of type T.
BCP_buffer & unpack(T &value)
Unpack a single object of type T.
void unpack(BCP_buffer &buf)
void pack(BCP_buffer &buf) const
int readDimacsFormat(std::istream &s, bool addDummyArcs)
void fint fint fint fint fint fint fint fint fint fint real real real real real real real real * s
This class describes the message buffer used for all processes of BCP.