[C] Problema con intero da file

Linguaggi di programmazione: php, perl, python, C, bash, ecc.

[C] Problema con intero da file

Messaggioda johnnny » giovedì 21 giugno 2012, 22:11

Allora se scrivo un intero su file ( ovviamente se provo ad aprire il file non vedo l'intero che ho scritto ma solo memoria sporca), poi provo a leggerlo nel modo che vedrete sotto, che credo sia giusto, come faccio a visualizzare su schermo il vero valore, perchè se provo a fare una printf di a subito dopo mi da un numero stranissimo.

Cosa devo mettere al posto dei trattini?

Codice: Seleziona tutto
#include<string.h>
#include<stdio.h>
#include<unistd.h>
#include<fcntl.h>
#include<stdlib.h>

int main(int argc, char argv[]){
        char c;
   int b=10,a;
   int fd=open("provo.txt", O_RDWR);
   write(fd, (void *)&b, sizeof(int));
   read(fd, &a, sizeof(int));
        a=atoi(&a);
   printf("\n Valore di A = %d\n", a);   
        //------------------------------???   

return 0;
}
johnnny Non specificato
Prode Principiante
 
Messaggi: 37
Iscrizione: maggio 2012
Distribuzione: zorin
Desktop: gnome-2d

Re: [C] Problema con intero da file

Messaggioda Zoff » giovedì 21 giugno 2012, 22:20

atoi() non ti serve e devi chiudere e riaprire il file prima di leggerlo.
Codice: Seleziona tutto
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>

int main(int argc, char* argv[]){
    int b=10,a;

    int fd=open("provo.txt", O_RDWR);
    write(fd, (void *)&b, sizeof(int));
    close(fd);

    fd=open("provo.txt", O_RDWR);
    read(fd, &a, sizeof(int));
    close(fd);

    printf("\n Valore di A = %d\n", a);

    return 0;
}


Oppure riposizioni il puntatore del file descriptor all'inizio:
Codice: Seleziona tutto
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>

int main(int argc, char* argv[]){
    int b=10,a;

    int fd=open("provo.txt", O_RDWR);
    write(fd, (void *)&b, sizeof(int));
    lseek(fd,0,SEEK_SET);
    read(fd, &a, sizeof(int));
    close(fd);

    printf("\n Valore di A = %d\n", a);

    return 0;
}
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Vuoi applicare il [Risolto] semplicemente alle tue discussioni? Prova: viewtopic.php?f=70&t=548821
Vuoi integrare il forum con Unity? Prova: viewtopic.php?f=70&t=562887
Avatar utente
Zoff Non specificato
Moderatore Globale
Moderatore Globale
 
Messaggi: 30342
Iscrizione: ottobre 2007


Torna a Programmazione

Chi c’è in linea

Visualizzano questa sezione: alessandro 22, rai e 6 ospiti