Code:
char format[BUFSIZ];
char label1[5], label2[18], label3[14], label4[13], label5[18],
label6[11], label7[12], label8[15], label9[7];
sprintf(format, "%%%d[^,],%%%d[^,],%%%d[^,],%%%d[^,]"
",%%%d[^,],%%%d[^,],%%%d[^,],%%%d[^,],%%%d[^,],%%*c",
(int)(sizeof label1 - 1), (int)(sizeof label2 - 1),
(int)(sizeof label3 - 1), (int)(sizeof label4 - 1),
(int)(sizeof label5 - 1), (int)(sizeof label6 - 1),
(int)(sizeof label7 - 1), (int)(sizeof label8 - 1),
(int)(sizeof label9 - 1));
printf("format = \"%s\"\n\n", format);
while ( fscanf(file, format, label1, label2, label3, label4,
label5, label6, label7, label8, label9) == 9 )
{
/* ... */
}