Sscanf (): differenze tra le versioni
Vai alla navigazione
Vai alla ricerca
(Creata pagina con "La funzione della libreria di C ''int sscanf (const char *__restrict __s, const char *__restrict __format, ...)'' legge l'input formattato da una stringa. <BR>Questa funzione...") |
Nessun oggetto della modifica |
||
| Riga 14: | Riga 14: | ||
<FONT Color=gray>' ''int sscanf (const char *__restrict __s, const char *__restrict __format, ...)'' | <FONT Color=gray>' ''int sscanf (const char *__restrict __s, const char *__restrict __format, ...)'' | ||
' ''Read formatted input from S.''</font> | ' ''Read formatted input from S.''</font> | ||
Private Extern sscanf(__s As | Private Extern sscanf(__s As String, __format As String, po2 As Pointer, po3 As Pointer, po4 As Pointer, po5 As Pointer) As Integer | ||
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
Dim p1, p2 | Dim s As String | ||
Dim p1, p2 As Pointer | |||
Dim i As Integer | Dim i As Integer | ||
Dim f As Float | Dim f As Float | ||
s = "aaaa bbbb 11111 123,4567" | |||
p1 = Alloc(SizeOf(gb.Byte), 16) | |||
p2 = Alloc(SizeOf(gb.Byte), 16) | p2 = Alloc(SizeOf(gb.Byte), 16) | ||
<FONT color=#B22222>sscanf</font>( | <FONT color=#B22222>sscanf</font>(s, "%s %s %d %lf", p1, p2, VarPtr(i), VarPtr(f)) | ||
Print String@( | Print String@(p1), String@(p2), i, f | ||
Free(p2) | Free(p2) | ||
Free(p1) | Free(p1) | ||
| Riga 42: | Riga 42: | ||
=Riferimenti= | =Riferimenti= | ||
* https://linux.die.net/man/3/sscanf | * https://linux.die.net/man/3/sscanf | ||
* http://www.gnu.org/software/libc/manual/html_node/Formatted-Input-Functions.html | |||
Versione delle 20:29, 11 feb 2017
La funzione della libreria di C
int sscanf (const char *__restrict __s, const char *__restrict __format, ...)
legge l'input formattato da una stringa.
Questa funzione pertanto è simile alla funzione esterna scanf( ), ma l'input avviene dal primo parametro __s, ossia da un Puntatore di tipo char.
Volendola utilizzare in Gambas, bisognerà dichiararla con Extern, nonché dichiarare la libreria di C: libc.so.6, nella quale la funzione è contenuta:
Private Extern sscanf(__s As Pointer, __format As String, [qui altri eventuali parametri As Pointer]) As Integer In "libc:6"
Mostriamo un esempio pratico:
Library "libc:6" ' int sscanf (const char *__restrict __s, const char *__restrict __format, ...) ' Read formatted input from S. Private Extern sscanf(__s As String, __format As String, po2 As Pointer, po3 As Pointer, po4 As Pointer, po5 As Pointer) As Integer Public Sub Main() Dim s As String Dim p1, p2 As Pointer Dim i As Integer Dim f As Float s = "aaaa bbbb 11111 123,4567" p1 = Alloc(SizeOf(gb.Byte), 16) p2 = Alloc(SizeOf(gb.Byte), 16) sscanf(s, "%s %s %d %lf", p1, p2, VarPtr(i), VarPtr(f)) Print String@(p1), String@(p2), i, f Free(p2) Free(p1) End