PDA

Visualizza la versione completa : [C] fwrite error?


ant_alt
23-01-2009, 22:03
#include<stdio.h>
#include<stdlib.h>

int main (){
FILE *file1;
FILE *file2;
FILE *file3;

char curr;
if (
((file1=fopen ("file1.txt", "r"))==NULL)||
((file3=fopen ("file2.txt", "r"))==NULL)||
((file3=fopen("file3.txt", "w"))==NULL))
printf ("file not found");

else {

while (!feof(file1)||!feof(file2)){
fread(&curr, sizeof(char),1,file1);
fwrite(&curr, sizeof(char),1,file3);
fread(&curr, sizeof(char),1,file2);
fwrite(&curr, sizeof(char), 1, file3);

}

}
system ("PAUSE");return 0;
}



semplice esercizio che dovrebbe creare un file3.txt con i caratteri presi in alternanza da file1 e file2..

che problema ha? :dh:


ps: dato che sono qui se qualcuno pu spiegarmi in termini pratici perch si usa typedef struct per inizializzare una struttura e non semplicemente struct gliene sarei grato:)

shodan
23-01-2009, 22:30
Beh, se vuoi scrivere l'indirizzo della locazione memoria di curr direi nessuno.
Se per vuoi scrivere il contenuto di curr, direi che c' un & di troppo.


fwrite(&curr, sizeof(char),1,file3);


Riguardo alle struct C. Probabilmente per risparmiarsi la solfa di scrivere ogni volta "struct qualcosa" quando si deve usare.

ant_alt
23-01-2009, 22:32
devC console errori


initializing argument 1 of `size_t fwrite(const void*, size_t, size_t, FILE*)'



ps: per le struct non ho ben capito, potresti spiegarti meglio?quando devo usare una struttura inizializzata ad esempio typedef struct nodo{..}nodo; la richiamo solo con "nodo"?? non penso..o si? :stordita:

oregon
23-01-2009, 22:32
Non usi file2 ma due volte file3 ... fai attenzione ...

La typedef non serve ad inizializzare la struttura ma a creare un nuovo "tipo di dato" ...

Non andare a caso ... non va bene per programmare ... usa un buon libro ...

http://www.disi.unige.it/person/DoderoG/LP/typed.htm

oregon
23-01-2009, 22:34
Originariamente inviato da shodan
... direi che c' un & di troppo.


In che senso ? :confused:

ant_alt
23-01-2009, 22:36
Originariamente inviato da oregon
Non usi file2 ma due volte file3 ... fai attenzione ...



scusami dove?
file1 e file2 devono scrivere entrambi in file3..a me sembra di aver scritto questo :fagiano:



ho editato il codice, c'era una printf di troppo e una fwrite commentata :fagiano:

oregon
23-01-2009, 22:40
Originariamente inviato da ant_alt
scusami dove?
file1 e file2 devono scrivere entrambi in file3..a me sembra di aver scritto questo :fagiano:


Controlla attentamente le fopen che hai scritto ...

shodan
23-01-2009, 22:41
Originariamente inviato da oregon
In che senso ? :confused:

Lasciamo perdere...
...ho avuto la pessima idea di postare dopo un'allegra serata a birra. Meglio che vada a :sonno:

oregon
23-01-2009, 22:41
Originariamente inviato da shodan
Lasciamo perdere...
...ho avuto la pessima idea di postare dopo un'allegra serata a birra. Meglio che vada a :sonno:

Ora ho capito ... :ciauz:

ant_alt
23-01-2009, 22:41
Originariamente inviato da oregon
Controlla attentamente le fopen che hai scritto ...

ho corretto ma l'errore che ho postato sopra ovviamente rimane

ps: e scusami se ti faccio perdere tempo con errori di distrazione :stordita:

Loading