Correzioni e tabella operatori di conversione per printf
[gapil.git] / filestd.tex
index c6be8eb040a1a795e22704147ff5ba58063ef3c5..df1b4655337b218f851cd3e9a15b2ffd9beeeb6d 100644 (file)
@@ -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.