Thread View: pl.comp.lang.c
3 messages
3 total messages
Started by Krzysztof Binias
Thu, 06 Nov 1997 13:21
Problem sscanf i sekwencji formatujacej %s
Author: Krzysztof Binias
Date: Thu, 06 Nov 1997 13:21
Date: Thu, 06 Nov 1997 13:21
17 lines
1341 bytes
1341 bytes
Prosze o pomoc w jasnej jakby sie wydawalo na pierwszy rzut oka sprawie. Potrzebuje odczytac za pomoca funkcji sscanf linie pliku o formacie: ST,10,20 tak aby poszczegolne skladniki tzn. ST , 10 , 20 znalazly sie w trzech oddzielnych tablicach znakowych tzn.: tab1[]="ST" tab2[]="10" tab3[]="20" Powyzszy problem probowalem rozwiazac za pomoca nastepujacej sekwencji formatujacej: sscanf(bufor,"%s[0-9],%s[0-9],%[0-9]",tab1,tab2,tab3); lub sscanf(bufor,"%s[^,],%s[^,],%s[]",tab1,tab2,tab3); ale niestety z kazdym razem wartoscia podstawiana pod tab1 bylo "ST,10,20" a nie "ST" Pomysl formatu "%s[zbior_znakow]" zaczerpnalem z ksiazki pana A. Zaleskiego pt. "Programowanie w jezykach C i C++".
Re: Problem sscanf i sekwencji formatujacej %s
Author: Andrzej Bialecki
Date: Thu, 06 Nov 1997 16:27
Date: Thu, 06 Nov 1997 16:27
26 lines
1563 bytes
1563 bytes
Krzysztof Binias (skorpion@opgk.krakow.pl) wrote:
: Pomysl formatu "%s[zbior_znakow]" zaczerpnalem z ksiazki pana A. Zaleskiego
: pt. "Programowanie w jezykach C i C++".
Wydaje mi sie, ze sscanf potrafis ie zupelnie inaczej zachowywac na roznych
platformach... :-((
Pomysl, ktory mi przychodzi do glowy, to zastosowac strtok() zamiast sscanf:
char *sep=",", *tok;
/* pierwszy ciag znakow */
tok=strtok(buf,sep);
/* nastepny ciagi znakow */
tok=strtok(NULL,sep);
/* itd.... */
--
Andrzej Bialecki
---------------------+---------------------------------------------------------
abial@warman.org.pl | if(halt_per_mth > 0) { fetch("http://www.freebsd.org") }
Research & Academic | "Be open-minded, but don't let your brains to fall out."
Network in Poland | All of the above (and more) is just my personal opinion.
---------------------+---------------------------------------------------------
Re: Problem sscanf i sekwencji formatujacej %s
Author: Jaroslaw Lis
Date: Thu, 06 Nov 1997 23:31
Date: Thu, 06 Nov 1997 23:31
20 lines
1354 bytes
1354 bytes
Krzysztof Binias <skorpion@opgk.krakow.pl> wrote: : Potrzebuje odczytac za pomoca funkcji sscanf linie pliku o formacie: : ST,10,20 : tak aby poszczegolne skladniki tzn. ST , 10 , 20 znalazly sie w trzech : oddzielnych tablicach znakowych [...] : sscanf(bufor,"%s[0-9],%s[0-9],%[0-9]",tab1,tab2,tab3); : sscanf(bufor,"%s[^,],%s[^,],%s[]",tab1,tab2,tab3); : ale niestety z kazdym razem wartoscia podstawiana pod tab1 bylo "ST,10,20" : a nie "ST" Nie daje sie %s[... tylko samo %[... No i oczywiscie "ST" nie spelnia wzorca "%[0-9]" Musisz tez pamietac, ze jakakolwiek niezgodnosc w danych i formacie przerywa czytanie, i nastepny scanf czyta od srodka linii. J.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads