|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2011
Messaggi: 152
|
problema i/o c
Ciao devo fare una prova per un programma molto + grande dove voglio semplicemente calcolare la dim in byte di una stringa metterla su file e poi prenderla e metterla in un altra stringa...il mio dubbio è questo per calolare la dim in byte uso strlen(stringa)*sizeof(*stringa); in questo mi conta tutti i caratteri ma non il carattere /0 che credo venga messo in automatico quando faccio *stringa="ciao" quando vado a mettere la stringa nel file devo anche mettere tale carattere?quindi dovrei fare strlen(stringa)*sizeof(*stringa)+1?oppure non serve?
IL PROBLEMA CMQ DA ERRORE PERCHE QUANDO STAMPA MI STAMPA UN QUADRATINO SPASTICO CON DEI NUMERI E NON LA STRINGA dove sbaglio? int main(){ int i; char *stringa="ciao"; i=open("input.txt",O_WRONLY); int byte=strlen(stringa)*sizeof(*stringa); write(i,stringa,byte); close(i); i=open("input.txt",O_RDONLY); char *stringa2; read(i,stringa2,byte); close(i); printf("STAMPA"); printf("\n"); printf("%s\n",stringa2); } |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: May 2009
Messaggi: 186
|
Devi allocare stringa2 tramite malloc (oppure staticamente) prima di leggerla dal file. Inoltre, dovrai poi aggiungere il terminatore a fine stringa.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:35.




















