🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

3 total messages Started by Krzysztof Binias Thu, 06 Nov 1997 13:21
Problem sscanf i sekwencji formatujacej %s
#231
Author: Krzysztof Binias
Date: Thu, 06 Nov 1997 13:21
17 lines
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
#232
Author: Andrzej Bialecki
Date: Thu, 06 Nov 1997 16:27
26 lines
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
#233
Author: Jaroslaw Lis
Date: Thu, 06 Nov 1997 23:31
20 lines
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