gaiapuffo
28-05-2012, 10:15
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);
}
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);
}