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 GlobalConnect
19. november 2012 - 12:23
#1
Hvordan er din arrayMatch defineret ?
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);
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?
19. november 2012 - 12:55
#6
Svar :)
Kurser inden for grundlæggende programmering