Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
//menu di stampa
int stampamenu(){
switch (c) {
case 0:cout<<"\ndati scritti\n";
break;
case 1:cout<<"\ndati letti\n";
break;
case 2:cout<<"\nsalvati\n";
break;
default:cout<<"\nerror\n";
break;
}
return c;
}
//manipolazione file
int scriveintmp(){
pFile = tmpfile();
fwrite(&buffer , 1 , sizeof(buffer) , pFile );
fclose(pFile);
return 0;
}
int scrivi(){
cin>>buffer;
int l=strlen(buffer);
pFile=fopen("myfile.txt","wb");
fwrite(&buffer,1,l,pFile);
fclose (pFile);
return 0;
}
int leggidafile(){
file=fopen("myfile.txt","r");
while (fgets(buff,dim,file)){
puts(buff);
}
return 0;
}
main(){
sceltamenu();
switch(c){
case 0:scrivi(),stampamenu();
break;
case 1:leggidafile(),stampamenu();
break;
default:"qualcosa non torna";
break;
}
la funzione cin prende i caratteri finche non incontra uno spazio, quindi si ferma a ciao
per prendere tutta la riga devi usare getline
ma prima di questo comando devi pulire il buffer con fflush
devi sostituire cin>>buffer con:
//menu di stampa
int stampamenu(){
switch (c) {
case 0:cout<<"\ndati scritti\n";
break;
case 1:cout<<"\ndati letti\n";
break;
case 2:cout<<"\nsalvati\n";
break;
default:cout<<"\nerror\n";
break;
}
return c;
}
//manipolazione file
int scriveintmp(){
pFile = tmpfile();
fwrite(&buffer , 1 , sizeof(buffer) , pFile );
fclose(pFile);
return 0;
}
int scrivi(){
int l=strlen(buffer);
fflush(stdin);
cin.getline(buffer,dim);
pFile=fopen("myfile.txt","wb");
fwrite(&buffer,1,l,pFile);
fclose (pFile);
return 0;
}
int leggidafile(){
file=fopen("myfile.txt","r");
while (fgets(buff,dim,file)){
puts(buff);
}
return 0;
}
main(){
sceltamenu();
switch(c){
case 0:scrivi(),stampamenu();
break;
case 1:leggidafile(),stampamenu();
break;
default:"qualcosa non torna";
break;
}
system("pause");
}
Ultima modifica effettuata da bip il 22/12/2008 alle 23:04