As i had stated on a previous thread, i found out that sscanf is better when parsing string literals, my program compiles but the output is not what i expect.
My input file is as follows: CityStats.txt with the following data
San Ignacio;Cayo;4000;5
and my output comes out as :
San Ignacio
Cayo
808464436
50921525
i got no idea how i get those final results. Can anyone help, i tried making it as simple as possible. the last two output should be 4000 and finally 5, but there is some wierd problems. advice, suggestions anyone, here is the code i have:
Code:#include <stdio.h> #include <string.h> int main(void) { struct stats { char town [32]; char district [32]; int pop; int quality; }; struct stats stat; char line[50]; /* space to read a line into */ int result; char filename[] = "CityStats.txt"; /* the name of a file to open */ FILE *file = fopen(filename, "r"); /* try to open the file */ if ( file ) { while ( fgets(line, sizeof line, file) ) /* read each line */ { result=sscanf(line, "%[^;];%[^;];%[^;];%[^;]",stat.town,stat.district,&stat.pop,&stat.quality); } fclose(file); } printf("sscanf successfully converted %d items!\n\n",result); printf("%s\n%s\n%d\n%d", stat.town, stat.district, stat.pop,stat.quality); return 0; }



LinkBack URL
About LinkBacks



