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
Annonceindlæg fra Novataris
Vejen til devops med Bavarian Nordic
Bavarian Nordics vækst blev starten på et DevOps-samarbejde med Novataris for hurtigt at kunne tilpasse IT-organisation til forretningen.
7. december 2023
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);
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?
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);