Avatar billede Madsgadeberg Nybegynder
19. november 2012 - 11:58 Der er 5 kommentarer og
1 løsning

Hvordan læser jeg flere integers og strenge sepererat af characters via fscanf

Hej Jeg har et problem med at læse 3 integers sepereret af et punktum ".". Min compiler giver mig segmentationfault.

Jeg læser mine integers ind i et array af structs

Linie som jeg vil læse ind:
1        16.07.2011 kl. 17.00    OB - FCN      2 - 0      6.965 

Min fscanf:
fscanf(inputFile, "%d        %d.%d.%d", &arrayMatch[1].round, &arrayMatch[1].date), &arrayMatch[1].month, &arrayMatch[1].year;

Mit test Output:
printf("%d\n", arrayMatch[1].round);
printf("%d\n", arrayMatch[1].date);
printf("%d\n", arrayMatch[1].hour);
printf("%d\n", arrayMatch[1].year);

Hvis jeg kun indlæser de første 2 integers fungerer det fint. lige så snart jeg kommer efter "." har jeg problemer.

hvis jeg indsætter dette i min scanf:
%d        %d%d%d
Så får jeg som output:
1
16
0
0
Avatar billede lars31415 Nybegynder
19. november 2012 - 12:23 #1
Hvordan er din arrayMatch defineret ?
Avatar billede lars31415 Nybegynder
19. november 2012 - 12:27 #2
Jeg går selvfølgelig ud fra din scanf line ikke ser ud som citeret men som dette istedet

fscanf(inputFile, "%d        %d.%d.%d", &arrayMatch[1].round, &arrayMatch[1].date, &arrayMatch[1].month, &arrayMatch[1].year);
Avatar billede Madsgadeberg Nybegynder
19. november 2012 - 12:40 #3
Ha Ha.. Ja jeg kan godt se fejlen nu:D

Det er det ")" der stod efter de første 2. det skulle selvfølgelig rykkes efter alle sammen. simpel fejl.

nu får jeg output:
1
16
0
2011

Men som du kan se har jeg en fejl med at læse integer nummer 3 "07". jeg går ud fra den er nul, fordi det fordi det første ciffer er nul.

har du en metode til at afhjælpe det problem?
Avatar billede lars31415 Nybegynder
19. november 2012 - 12:50 #4
Hvad med (jeg har ikke prøvet det efter)

fscanf(inputFile, "%d        %2d.%2d.%4d", &arrayMatch[1].round, &arrayMatch[1].date, &arrayMatch[1].month, &arrayMatch[1].year);
Avatar billede Madsgadeberg Nybegynder
19. november 2012 - 12:54 #5
Den tager godt nok begge 2 cifre.

Det var mig der var en klovn med mit output.

Men tak for hjælpen!!

smider du lige et svar?
Avatar billede lars31415 Nybegynder
19. november 2012 - 12:55 #6
Svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester