PDA

Visualizza la versione completa : [C] Lettura/scrittura su file


Matrix_denny
25-01-2007, 12:13
Salve a tutti premettendo che il codice funziona e che sono alle prime armi vorrei sapere se il codice scritto Ŕ ottimale anche se ho i miei dubbi altrimenti potreste postarmi per esempio un codice scritto bene per favore? grazie in anticipo!!!



#include <stdio.h>

void open(char *);
void write(char *);

int main(int argc, char *argv[])
{
if(argc != 3)
printf("3");
else{
open(argv[1]);
write(argv[2]);
}
return 0;
}

void open(char *op)
{
FILE *in;
in=fopen(op, "r");
if(in == NULL)
printf("no file found\n");
}

void write(char *wr)
{
FILE *out;
out=fopen(wr, "w");
if(out == NULL)
printf("no write file\n");
}

roxxy86
25-01-2007, 13:00
Per me e' ottimo! Non sono un geniaccio della programmazione ma... il tuo codice mi sembra OK!!! Anche perche' hai fatto pochissime operazioni quindi, non c'e' troppo da valutare!!

Matrix_denny
25-01-2007, 13:03
beh in realta' mi sono gia' accorto che non chiudo il file aperto e quello scritto, e come li metto nelle rispettive funzioni ho un bel segmentation fault,inoltre quello che mi preoccupa di piu' Ŕ la gestione degli errori che non penso vada per nulla bene.

roxxy86
25-01-2007, 18:19
x me una cosa del genere funziona... bene!
in realtÓ non capisco da dove derivano i tuoi segmentation fault !



#include <stdio.h>

void open(char *);
void write(char *);

int main(int argc, char *argv[])
{
if(argc != 3)
printf("3");
else{
printf("\ninput %s",argv[1]); printf("\noutput %s",argv[2]); printf("\n");
open(argv[1]);
write(argv[2]);
}
return 0;
}

void open(char *op)
{
FILE *in;
in=fopen(op, "r");
if(!in) { printf("no file found\n"); return;}
//fai quello che devi fare
fclose(in);
}

void write(char *wr)
{
FILE *out;
out=fopen(wr, "w");
if(!out) { printf("no write file\n"); return; }
//fai quello che devi fare
fclose(out);
}

devil89
25-01-2007, 18:34
#include <stdio.h>

void open(char *);
void write(char *);

int main(int argc, char *argv[])
{
if(argc != 3)
printf("3");
else{
printf("\nInput %s\nOutput %s\n",argv[1], argv[2]);
open(argv[1]);
write(argv[2]);
}
return 0;
}

void open(char *op)
{
FILE *in;
if ((in=fopen(op, "r"))==NULL) {
printf("no file found\n");
return;
}
/*fai quello che devi fare*/
fclose(in);
}

void write(char *wr)
{
FILE *out;
if ((out=fopen(wr, "w"))==NULL) {
printf("no file found\n");
return;
}
/*fai quello che devi fare*/
fclose(out);
}

roxxy86
25-01-2007, 18:47
beh... uguale al mio insomma!!!! :nonono:

Matrix_denny
26-01-2007, 13:03
Ragazzi io saro' anche inesperto ma voi li testate i programmi prima di proporli???
Provate ad eseguirlo e noterete che il file viene scritto ugualmente anche se non trova il file di input

UltraBeginner
26-01-2007, 13:46
Originariamente inviato da Matrix_denny
Ragazzi io saro' anche inesperto ma voi li testate i programmi prima di proporli???
Provate ad eseguirlo e noterete che il file viene scritto ugualmente anche se non trova il file di input

con scritto intendi che viene creato sull hard disk?

Matrix_denny
26-01-2007, 13:50
certo il file viene cmq generato!!!

UltraBeginner
26-01-2007, 14:15
Certo che viene generato,

ce scritto nel codice.....

Loading