[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.
