X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=filestd.tex;h=df1b4655337b218f851cd3e9a15b2ffd9beeeb6d;hp=c6be8eb040a1a795e22704147ff5ba58063ef3c5;hb=80ddc5f8b7f561a4fc605330be149089cd838de8;hpb=6b236ee4592f05aabf7dbb4bfcba72d4217052d3 diff --git a/filestd.tex b/filestd.tex index c6be8eb..df1b465 100644 --- a/filestd.tex +++ b/filestd.tex @@ -951,11 +951,56 @@ consiglia l'uso dell'alternativa: \param{size} caratteri. \end{prototype} -La parte più complessa di queste funzioni è il formato della variabile -\param{format} che indica le conversioni da fare ed il numero di -parametri che dovranno essere specificati a seguire. - +La parte più complessa di queste funzioni è il formato della stringa +\param{format} che indica le conversioni da fare, da cui poi deriva il numero +dei parametri che dovranno essere passati a seguire. La stringa è costituita +da caratteri normali (tutti eccetto \texttt{\%}), che vengono passati +invariati all'output, e da direttive di conversione, il cui formato è sempre +del tipo: +\begin{center} +\begin{verbatim} +% [n. parametro $] [flag] [larghezza] [. precisione] [tipo] conversione +\end{verbatim} +\end{center} +in cui devono essere sempre presenti il carattere \texttt{\%}, che introduce +la direttiva, ed uno degli specificatori di conversione (riportatati in \ntab) +che la conclude; gli altri valori, indicati fra parentesi, sono opzionali. +\begin{table}[htb] + \centering + \begin{tabular}[c]{|l|p{10cm}|} + \hline + \textbf{Valore} & \textbf{Significato} \\ + \hline + \hline + \cmd{\%d} & Stampa un numero intero in formato decimale + con segno\\ + \cmd{\%i} & Identico a \cmd{\%i} in output, \\ + \cmd{\%o} & Stampa un numero intero come ottale\\ + \cmd{\%u} & Stampa un numero intero in formato decimale senza + segno \\ + \cmd{\%x}, \cmd{\%X} & Stampano un intero in formato esadecimale, + rispettivamente con lettere minuscole e maiuscole. \\ + \cmd{\%f} & Stampa un numero in virgola mobile con la notazione + a virgola fissa \\ + \cmd{\%e}, \cmd{\%E} & Stampano un numero in virgola mobile con la notazione + esponenziale, rispettivamente con lettere minuscole + e maiuscole. \\ + \cmd{\%g}, \cmd{\%G} & Stampano un numero in virgola mobile con la notazione + più appropriate delle due precedenti, + rispettivamente con lettere minuscole e maiuscole. \\ + \cmd{\%a}, \cmd{\%A} & Stampano un numero in virgola mobile in notazione + esadecimale frazionaria\\ + \cmd{\%c} & Stampa un carattere singolo\\ + \cmd{\%s} & Stampa una stringa \\ + \cmd{\%p} & Stampa il valore di un puntatore\\ + \cmd{\%n} & Prende il numero di caratteri stampati finora\\ + \hline + \end{tabular} + \caption{Valori possibili per gli specificatori di conversione in una + stringa di formato per l'output.} + \label{tab:file_format_spec} +\end{table} @@ -984,7 +1029,7 @@ non un numero di caratteri (ad esempio in VMS può essere rappresentata come numero di record, e offset rispetto al record corrente). -Tutto questo comporta la presenza di diverse funzioni che seguono +Tutto questo comporta la presenza di diverse funzioni che eseguono sostanzialmente le stesse operazioni, ma usano parametri di tipo diverso. Le funzioni tradizionali usate per il riposizionamento della posizione in uno stream sono: @@ -1005,7 +1050,7 @@ significato; in particolare \param{whence} assume gli stessi valori gi visti in \secref{sec:file_lseek}. La funzione restituisce 0 in caso di successo e -1 in caso di errore. -Per leggere la posizione corrente invece la funzione \func{ftell}, il +Per leggere la posizione corrente si usa invece la funzione \func{ftell}, il cui prototipo è: \begin{prototype}{stdio.h}{long ftell(FILE *stream)} Legge la posizione attuale nello stream.