Oppure

Loading
02/01/09 21:58
bip
codice:

#include<iostream>
#include<conio.h>
#include<stdio.h>
#include<string>
#define dim 1000
using namespace std;

int c,s=0,z=0;
char buff[dim], buffer[dim], o;
FILE *pFile, *file;

//creo la struttura di memoria
struct data{
int giorno;
char mese[20];
int anno;
};

struct utente{
char codicefiscale[16];
int matricola;
char nome[20];
char via[20];
char localita[25];
char provincia[2];
struct data nato;
} user[20];


//menu scelta
void sceltamenu(){
cout<<"con 0 inserisci dati in memoria\n";
cout<<"con 1 leggi dati in memeria \n";
cout<<"con 2 salva dati \n";
cout<<"con 3 leggi dati salvati \n";
cin>>c;
}

//inserimento dati utente


//menu di stampa
int stampamenu(){
switch (c) {
case 0:cout<<"\ndati inseriti\n";
break;
case 1:cout<<"\ndati letti dalla memoria\n";
break;
case 2:cout<<"\nsalvati\n";
break;
case 3:cout<<"\nsalvati\n";
break;
default:cout<<"\nerror\n";
break;
}
return c;
}


//manipolazione file
int scriveintmp(){
cin.getline(buffer,dim);
pFile = tmpfile();
fwrite(buffer, sizeof(char) ,dim , pFile);
fclose(pFile);
fflush(stdin);
return 0;
}
int leggitmp(){
file=fopen("myfile.txt","r";);
while (fgets(buff,dim,file)){
puts(buff);
}
return 0;
}
int scrivi(){
pFile=fopen("myfile.txt","wb";);
for(int x=0;x<=dim;x++){
cin>>user[x].nome;
cin>>user[x].via;
cin>>user[x].localita;
cin>>user[x].provincia;
cin>>user[x].nato.giorno;
cin>>user[x].nato.mese;
cin>>user[x].nato.anno;
cin>>user[x].codicefiscale;
};

for(int y=0;y<=dim;y++){
fwrite("\nnome\n"user[y].nome, sizeof(char), dim, pFile);
fwrite("\nvia\n"user[y].via, sizeof(char), dim, pFile);
fwrite("\nlocalità\n"user[y].localita, sizeof(char), dim, pFile);
fwrite("\nsigla provincia\n"user[y].provincia, sizeof(char), dim, pFile);
fwrite("\ngiorno\n"user[y].nato.giorno, sizeof(char), dim, pFile);
fwrite("\nmese\n"user[y].nato.mese, sizeof(char), dim, pFile);
fwrite("\nanno\n"user[y].nato.anno, sizeof(char), dim, pFile);
fwrite("\ncodice fiscale\n"user[y].codicefiscale, sizeof(char), dim, pFile);
};
fclose (pFile);
fflush(stdin);
return 0;
}
int leggidafile(){
file=fopen("myfile.txt","r";);
while (fgets(buff,dim,file)){
puts(buff);
}
return 0;
}


main(){
sceltamenu();

switch(c){
case 0:scriveintmp(),stampamenu();
break;
case 1:leggitmp(),stampamenu();
break;
case 2:scrivi(),stampamenu();
break;
case 3:leggidafile(),stampamenu();
break;
default:"qualcosa non torna";
break;
}

system("pause";);
}

che il problema è quì:

for(int y=0;y<=dim;y++){
fwrite("\nnome\n"user[y].nome, sizeof(char), dim, pFile);
fwrite("\nvia\n"user[y].via, sizeof(char), dim, pFile);
fwrite("\nlocalità\n"user[y].localita, sizeof(char), dim, pFile);
fwrite("\nsigla provincia\n"user[y].provincia, sizeof(char), dim, pFile);
fwrite("\ngiorno\n"user[y].nato.giorno, sizeof(char), dim, pFile);
fwrite("\nmese\n"user[y].nato.mese, sizeof(char), dim, pFile);
fwrite("\nanno\n"user[y].nato.anno, sizeof(char), dim, pFile);
fwrite("\ncodice fiscale\n"user[y].codicefiscale, sizeof(char), dim, pFile);
};

il compilatore mi scrive x ogni funzione fwrite uesto msg di errore :
expected `)' before "user"

che posso fare?
hlplsme:ot::alert::ot:
Ultima modifica effettuata da bip 02/01/09 22:12
aaa
02/01/09 23:18
iGuLy
Non ho letto tutto, comunque mi sembra di capire che hai dimenticato più volte delle ',' quando richiami la funzione fwrite.
aaa
03/01/09 22:13
bip
srcitto coi non capisco nulla mi puoi correggere come secondo tè è giusto scrivere un fwrite cioè scrivendomi la funzione fwrite come scriveresti tu?:alert::alert:
thx
aaa
04/01/09 13:10
iGuLy
Per esempio qui:
fwrite("\nnome\n"user[y].nome, sizeof(char), dim, pFile); 

manca una virgola e poi se vuoi stampare user[y].nome dovresti mettere:
// dim teoriacamente dovrebbe essere la quantità di caratteri da scrivere
fwrite(user[y].nome, sizeof(char), dim, pFile);

Dai uno sguardo anche qui che c'è una spiegazione della fwrite digilander.libero.it/uzappi/C/librerie/funzioni/…
Ultima modifica effettuata da iGuLy 04/01/09 13:11
aaa