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 DE-CIX
Edge computing: behandling ved kilden
Edge computing revolutionerer den måde, data behandles på, ved at bringe kapacitet og ydeevne tættere på dér, hvor der er behov for det.
15. april 2025
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);