Stampa testo formattato in C
-
Usa la funzione
printf
con l’identificatore%s
per stampare le stringhe -
Usa la funzione
printf
con specificatore%i
per stampare numeri interi
Questo articolo introdurrà diversi metodi su come stampare il testo formattato sulla console in C.
Usa la funzione printf
con l’identificatore %s
per stampare le stringhe
La funzione printf
è una delle parti più utilizzate della libreria standard di input/output. In realtà, esiste un’intera famiglia di funzioni printf
specializzate per più scenari, tutti documentati in dettaglio in questa pagina. In questo articolo, mostriamo solo l’output formattato utilizzando la funzione printf
.
printf
è unico in quanto può richiedere un numero variabile di argomenti. Vale a dire, i parametri della funzione possono essere divisi in due parti, la stringa di formato e altri argomenti. La stringa di formato specifica la parte di formattazione della funzione e include caratteri ordinari e specificatori che iniziano con il simbolo %
. Le forme più semplici sono dimostrate nel seguente esempio, dove printf
prende la stringa stessa come unico argomento nella prima chiamata, e la seconda chiamata dichiara un singolo specificatore %s
nella stringa di formato seguito dall’argomento della variabile stringa.
#include <stdio.h>
#include <stdlib.h>
int main(void) {
const char* str1 = "fabulae mirabiles";
printf("String literal\n");
printf("%s\n", str1);
exit(EXIT_SUCCESS);
}
Produzione:
String literal
fabulae mirabiles
Un’altra caratteristica utile della stringa di formato è specificare quanti caratteri visualizzare dall’argomento della stringa passato alla funzione. Il codice di esempio successivo mostra due soluzioni a questo problema.
Il primo inserisce il numero intero che denota il numero di caratteri tra i simboli %
e s
; quindi, solo 6 caratteri vengono stampati dall’argomento stringa specificato. La seconda chiamata printf
inserisce invece il carattere *
e consente all’utente di passare il valore integrale da uno degli argomenti. Il lato positivo di quest’ultimo metodo è che il valore può essere calcolato in fase di esecuzione, mentre il primo metodo richiede che il valore sia hardcoded. Si noti che, in entrambi i casi, il carattere .
dopo il simbolo %
è necessario.
#include <stdio.h>
#include <stdlib.h>
int main(void) {
const char* str1 = "fabulae mirabiles";
printf("%.6s\n", str1);
printf("%.*s \n", 6, str1);
exit(EXIT_SUCCESS);
}
Produzione:
fabula
fabula
Usa la funzione printf
con specificatore %i
per stampare numeri interi
printf
può stampare numeri interi con diverse rappresentazioni. I metodi comuni includono la modifica della base in cui vengono visualizzati i numeri interi. Gli argomenti interi possono essere indicati con l’identificatore specificatore %i
o %d
. I numeri positivi e negativi vengono formattati automaticamente, tranne per il fatto che i numeri positivi non vengono visualizzati con il segno più e possono essere inclusi con l’identificatore esplicito %+i
. I numeri esadecimali e ottali possono essere emessi con gli specificatori %x
e %o
. L’identificatore specificatore %X
mostra numeri esadecimali con formattazione in maiuscolo.
#include <stdio.h>
#include <stdlib.h>
int main(void) {
printf("%i %d %.6i %+i %i\n", 11, 22, 12, 41, -31);
printf("%.4x %x %X %#x\n", 126, 125, 125, 100);
printf("%.4o %o\n", 8, 11);
exit(EXIT_SUCCESS);
}
Produzione:
11 22 000012 +41 -31
007e 7d 7D 0x64
0010 13
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook