[C] stampare un array di caratteri
In C posso stampare tutta una stringa in questo modo?
Immagino di no perchè così mi stampa solo il carattere iniziale.
char stringa[10];
<scrittura su stringa>
printf("%s",stringa);
Immagino di no perchè così mi stampa solo il carattere iniziale.
Risposte
In teoria il modo per scriverlo è corretto. Se ti dà solo l'elemento iniziale vuol dire che hai sbagliato qualcosa prima.
int fd = socket (PF_INET, SOCK_RAW, IPPROTO_ICMP);
char buffer[8192];
printf("Sto per iniziare a leggere\n");
//Alternativa 1: stampa carattere per carattere
while (read (fd, buffer, 8192) > 0) {
int i;
for(i=0;i<8192;i++) printf ("Caught packet: %c\n",buffer[i]);
}
//Alternativa 2: stampa tutto insieme
while (read (fd, buffer, 8192) > 0) {
printf ("Caught packet: %c\n",buffer);
}
Nei due casi la parte in cui la stringa viene modificata non cambia.
Cambia solamente la parte in cui viene stampata.
Nel primo stampa tutti i caratteri.
Nel secondo solo il primo.
Perché hai scritto %c e non %s...
sopra l'avevi messo giusto.