I modified your code a bit:
Code:
#include <stdio.h>
int main()
{
FILE *fp = fopen("test.txt", "r");
char line[99];
char variable[99];
char variable1[99];
if (!fp)
{
fprintf(stderr, "Could not open test.txt\n");
return 1;
}
while ((fgets(line, 99, fp)) != NULL)
{
printf("Outer Line =%s\n", line);
if (line[0] == 'a')
{
while ((fgets(line, 99, fp)) != NULL)
{
printf("Inner Line =%s\n", line);
if (line[0] == 'b')
sscanf(line, "b %s", variable);
else if (line[0] == 'c')
sscanf(line, "c %s", variable1);
else
break;
}
printf("var = %s, var1 = %s\n", variable, variable1);
}
}
return 0;
}
And I got this output, which quite clearly shows that you are skipping over the second 'a' line:
Code:
Outer Line =a INFOA1
Inner Line =b INFOB1
Inner Line =b INFOB2
Inner Line =c INFOC1
Inner Line =c INFOC2
Inner Line =a INFOA2
var = INFOB2, var1 = INFOC2
Outer Line =b INFOB3
Outer Line =b INFOB4
Outer Line =c INFOC3
Outer Line =c INFOC4
This was done as a quick hack - it's not intended as "how you go about writing good programs".
--
Mats