Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Intervista a Stop Killing Games: distruggere videogiochi è come bruciare la musica di Mozart
Intervista a Stop Killing Games: distruggere videogiochi è come bruciare la musica di Mozart
Mentre Ubisoft vorrebbe chiedere agli utenti, all'occorrenza, di distruggere perfino le copie fisiche dei propri giochi, il movimento Stop Killing Games si sta battendo per preservare quella che l'Unione Europea ha già riconosciuto come una forma d'arte. Abbiamo avuto modo di parlare con Daniel Ondruska, portavoce dell'Iniziativa Europa volta a preservare la conservazione dei videogiochi
Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione
Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione
Abbiamo provato il nuovo Galaxy S25 Edge, uno smartphone unico per il suo spessore di soli 5,8 mm e un peso super piuma. Parliamo di un device che ha pro e contro, ma sicuramente si differenzia dalla massa per la sua portabilità, ma non senza qualche compromesso. Ecco la nostra prova completa.
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto
Pensato per il professionista sempre in movimento, HP Elitebook Ultra G1i 14 abbina una piattaforma Intel Core Ultra 7 ad una costruzione robusta, riuscendo a mantenere un peso contenuto e una facile trasportabilità. Ottime prestazioni per gli ambiti di produttività personale con un'autonomia lontano dalla presa di corrente che permette di lavorare per tutta la giornata
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-01-2002, 17:31   #1
Al è qui
Member
 
L'Avatar di Al è qui
 
Iscritto dal: Jul 2001
Messaggi: 42
[C++] Un listato strano

Ho provato a compilare questo listato, ma oltre a fare una fatica bestiale per compilarlo correttamente, una volta che lo uso ha comportamente assolutamente inspiegabili, come un loop sulla richiesta se continuare o meno con il progz.
Richiede:
continuare? con le opzioni Y e N
se metto s
si impalla e spara righe sul terminale in modo infinito.
Vi metto il listato:
--
#include <fstream.h>
#include <string.h>
#include <conio.h>
#include<alloc.h>
#include<iostream.h>
class person


{
public:
char name[20];
int age;
person()


{
age=0;
strcpy(name,"");
};
void getdata()


{
cout<<"Enter your name::";
cin>>name;
cout<<"Enter your age::";
cin>>age;
}
void showdata()


{
cout<<"NAME:::"<<name<<endl;
cout<<"AGE:::"<<age;
cout<<endl<<endl;
}

};
void main()


{
int choice,flag=0,age1;
char name1[20],ch='y',name2[20];
person pers;
fstream file,temp;
do


{
file.open("file.txt",ios::app|ios::out|ios::in);
temp.open("temp.txt",ios::app|ios::out|ios::in);
cout<<"**********MAIN MENU**********"<<endl<<endl;
cout<<" Press 1 to add a record"<<endl<<endl;
cout<<" Press 2 to read a record"<<endl<<endl;
cout<<" Press 3 to edit a record"<<endl<<endl;
cout<<" Press 4 to delete a record"<<endl<<endl;
cout<<" Press 5 to quit"<<endl<<endl;
cout<<"Enter::";cin>>choice;
switch(choice)


{
case 1:
do


{
pers.getdata();
file.write((char *)&pers,sizeof(pers));
cout<<"Do you want to continue::"<<endl;
cin>>ch;
}while(ch=='y' || ch=='Y');
continue;
case 2:
file.seekg(0);
do


{
file.seekg(0);
cout<<"Enter the name::";
cin>>name1;
file.read((char *)&pers,sizeof(pers));
while(!file.eof())


{
if(strcmp(pers.name,name1)==0)


{
flag=1;
break;
}
else
{
flag=0;
}
file.read((char *)&pers,sizeof(pers));
}
if (flag==1)


{
pers.showdata();
cout<<"Do you want to continue::";
cin>>ch;
if (ch=='y' || ch=='Y')
continue;
else
break;
}
else


{
cout<<"Record does not exist"<<endl;
cout<<"Do you want to continue::"<<endl;
cin>>ch;
if (ch=='y' || ch=='Y')


{
file.close();
file.open("file.txt",ios::app|ios::out|ios::in);
continue;
}
else
break;

}

}while(ch=='y' || ch=='Y');
continue;
case 3:
file.seekg(0);
do


{
file.seekg(0);
cout<<"Enter the name you want to edit::";
cin>>name1;
file.read((char *)&pers,sizeof(pers));
while(!file.eof())


{
if(strcmp(pers.name,name1)==0)


{
flag=1;
break;
}
else
{
flag=0;
}
file.read((char *)&pers,sizeof(pers));
}
if (flag==1)


{
pers.showdata();
cout<<"Enter new name::";
cin>>name2;
cout<<"Enter new age::";
cin>>age1;
strcpy(pers.name,name2);
pers.age=age1;
temp.write((char *)&pers,sizeof(pers));
file.seekg(0);
cout<<"heloooooooo";
while(!file.eof())


{
file.read((char *)&pers,sizeof(pers));
if(strcmp(pers.name,name1)!=0)


{
temp.write((char *)&pers,sizeof(pers));
file.read((char *)&pers,sizeof(pers));
}
}
file.close();
temp.close();
system("del file.txt");
system("ren temp.txt file.txt");
cout<<"Do you want to continue::";
cin>>ch;
if (ch=='y' || ch=='Y')
continue;
else
break;
}
else


{
cout<<"Record does not exist"<<endl;
cout<<"Do you want to continue::"<<endl;
cin>>ch;
if (ch=='y' || ch=='Y')


{
file.close();
file.open("file.txt",ios::app|ios::out|ios::in);
continue;
}
else
break;

}

}while(ch=='y' || ch=='Y');
continue;
case 4:
file.seekg(0);
do


{
file.seekg(0);
cout<<"Enter the name you want to delete::";
cin>>name1;
file.read((char *)&pers,sizeof(pers));
while(!file.eof())


{
if(strcmp(pers.name,name1)==0)


{
flag=1;
break;
}
else
{
flag=0;
}
file.read((char *)&pers,sizeof(pers));
}
if (flag==1)


{
pers.showdata();
file.seekg(0);
while(!file.eof())


{
file.read((char *)&pers,sizeof(pers));
if(strcmp(pers.name,name1)!=0)


{
temp.write((char *)&pers,sizeof(pers));
file.read((char *)&pers,sizeof(pers));
}
}
file.close();
temp.close();
system("del file.txt");
system("ren temp.txt file.txt");

cout<<"Do you want to continue::";
cin>>ch;
if (ch=='y' || ch=='Y')
continue;
else
break;
}
else


{
cout<<"Record does not exist"<<endl;
cout<<"Do you want to continue::"<<endl;
cin>>ch;
if (ch=='y' || ch=='Y')


{
file.close();
file.open("file.txt",ios::app|ios::out|ios::in);
continue;
}
else
break;

}

}while(ch=='y' || ch=='Y');
continue;
case 5:
break;
default:
break;
}
}while(choice!=5);
}
--
Avete idee?
Compilato con Borland e Dev-C++
Al
__________________
I just say whatever I want to whoever I want
Whenever I want, wherever I want, however I want
However, I do show some respect to few - Em
Al è qui è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2002, 00:17   #2
/\/\@®¢Ø
Bannato
 
L'Avatar di /\/\@®¢Ø
 
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
Ciao !
Leggere il tuo listato e' agevole... ti converrebbe spezzare il codice in qualche funzione in piu'.
Che versione e' del compilatore ? Non dovresti includere iostream.h string.h e fstream.h, sono degli header vecchi, mantenuti per compatibilita', dovresti usare al loro posto iostream , string e fstream ( senza il .h ).
alloc.h e conio.h non dovrebbero servirti inoltre ( se non ho saltato qualche riga durante la lettura .... )
Perche' concludi i 'case' con il continue ? Non sarebbe piu' opportuno un break ? ( Parlo dello switch che gestisce le opzioni del menu )
Magari e' quello che ti causa problemi
/\/\@®¢Ø è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2002, 08:15   #3
Al è qui
Member
 
L'Avatar di Al è qui
 
Iscritto dal: Jul 2001
Messaggi: 42
Proverò a cambiare come hai detto, però non l'ho messo e mi scuso, quasto listato non è mio, l'ho trovato in rete.

Effettivamente avevo pensato anche io allo switch oggi provo.
La cosa più strana è che ad un mio amico invece funziona egregiamente.

mah!
Al
__________________
I just say whatever I want to whoever I want
Whenever I want, wherever I want, however I want
However, I do show some respect to few - Em
Al è qui è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2002, 03:08   #4
LuCaP78
Senior Member
 
L'Avatar di LuCaP78
 
Iscritto dal: Jun 2001
Città: RiCcIoNe
Messaggi: 105
Re: [C++] Un listato strano

Quote:
Originariamente inviato da Al è qui
[b]Ho provato a compilare questo listato, ma oltre a fare una fatica bestiale per compilarlo correttamente, una volta che lo uso ha comportamente assolutamente inspiegabili, come un loop sulla richiesta se continuare o meno con il progz.
Richiede:
continuare? con le opzioni Y e N
se metto s
si impalla e spara righe sul terminale in modo infinito.
Vi metto il listato:
--
#include <fstream.h>
#include <string.h>
#include <conio.h>
#include<alloc.h>
#include<iostream.h>
class person


{
public:
char name[20];
int age;
person()


{
age=0;
strcpy(name,"");
};
void getdata()


{
cout<<"Enter your name::";
cin>>name;
cout<<"Enter your age::";
cin>>age;
}
void showdata()


{
cout<<"NAME:::"<<name<<endl;
cout<<"AGE:::"<<age;
cout<<endl<<endl;
}

};
void main()


{
int choice,flag=0,age1;
char name1[20],ch='y',name2[20];
person pers;
fstream file,temp;
do


{
file.open("file.txt",ios::app|ios::out|ios::in);
temp.open("temp.txt",ios::app|ios::out|ios::in);
cout<<"**********MAIN MENU**********"<<endl<<endl;
cout<<" Press 1 to add a record"<<endl<<endl;
cout<<" Press 2 to read a record"<<endl<<endl;
cout<<" Press 3 to edit a record"<<endl<<endl;
cout<<" Press 4 to delete a record"<<endl<<endl;
cout<<" Press 5 to quit"<<endl<<endl;
cout<<"Enter::";cin>>choice;
switch(choice)


{
case 1:
do


{
pers.getdata();
file.write((char *)&pers,sizeof(pers));
cout<<"Do you want to continue::"<<endl;
cin>>ch;
}while(ch=='y' || ch=='Y');
continue;
case 2:
file.seekg(0);
do


{
file.seekg(0);
cout<<"Enter the name::";
cin>>name1;
file.read((char *)&pers,sizeof(pers));
while(!file.eof())


{
if(strcmp(pers.name,name1)==0)


{
flag=1;
break;
}
else
{
flag=0;
}
file.read((char *)&pers,sizeof(pers));
}
if (flag==1)


{
pers.showdata();
cout<<"Do you want to continue::";
cin>>ch;
if (ch=='y' || ch=='Y')
continue;
else
break;
}
else


{
cout<<"Record does not exist"<<endl;
cout<<"Do you want to continue::"<<endl;
cin>>ch;
if (ch=='y' || ch=='Y')


{
file.close();
file.open("file.txt",ios::app|ios::out|ios::in);
continue;
}
else
break;

}

}while(ch=='y' || ch=='Y');
continue;
case 3:
file.seekg(0);
do


{
file.seekg(0);
cout<<"Enter the name you want to edit::";
cin>>name1;
file.read((char *)&pers,sizeof(pers));
while(!file.eof())


{
if(strcmp(pers.name,name1)==0)


{
flag=1;
break;
}
else
{
flag=0;
}
file.read((char *)&pers,sizeof(pers));
}
if (flag==1)


{
pers.showdata();
cout<<"Enter new name::";
cin>>name2;
cout<<"Enter new age::";
cin>>age1;
strcpy(pers.name,name2);
pers.age=age1;
temp.write((char *)&pers,sizeof(pers));
file.seekg(0);
cout<<"heloooooooo";
while(!file.eof())


{
file.read((char *)&pers,sizeof(pers));
if(strcmp(pers.name,name1)!=0)


{
temp.write((char *)&pers,sizeof(pers));
file.read((char *)&pers,sizeof(pers));
}
}
file.close();
temp.close();
system("del file.txt");
system("ren temp.txt file.txt");
cout<<"Do you want to continue::";
cin>>ch;
if (ch=='y' || ch=='Y')
continue;
else
break;
}
else


{
cout<<"Record does not exist"<<endl;
cout<<"Do you want to continue::"<<endl;
cin>>ch;
if (ch=='y' || ch=='Y')


{
file.close();
file.open("file.txt",ios::app|ios::out|ios::in);
continue;
}
else
break;

}

}while(ch=='y' || ch=='Y');
continue;
case 4:
file.seekg(0);
do


{
file.seekg(0);
cout<<"Enter the name you want to delete::";
cin>>name1;
file.read((char *)&pers,sizeof(pers));
while(!file.eof())


{
if(strcmp(pers.name,name1)==0)


{
flag=1;
break;
}
else
{
flag=0;
}
file.read((char *)&pers,sizeof(pers));
}
if (flag==1)


{
pers.showdata();
file.seekg(0);
while(!file.eof())


{
file.read((char *)&pers,sizeof(pers));
if(strcmp(pers.name,name1)!=0)


{
temp.write((char *)&pers,sizeof(pers));
file.read((char *)&pers,sizeof(pers));
}
}
file.close();
temp.close();
system("del file.txt");
system("ren temp.txt file.txt");

cout<<"Do you want to continue::";
cin>>ch;
if (ch=='y' || ch=='Y')
continue;
else
break;
}
else


{
cout<<"Record does not exist"<<endl;
cout<<"Do you want to continue::"<<endl;
cin>>ch;
if (ch=='y' || ch=='Y')


{
file.close();
file.open("file.txt",ios::app|ios::out|ios::in);
continue;
}
else
break;

}

}while(ch=='y' || ch=='Y');
continue;
case 5:
break;
default:
break;
}
}while(choice!=5);
}
--
Avete idee?
Compilato con Borland e Dev-C++
Al
ma come fatea capire sta roba?!!?
__________________
" La PIADINA s'e PARSOT la PIS un po' MA TOT "

PIG FOREVER
LuCaP78 è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2002, 05:32   #5
V|RuS[X]
Bannato
 
L'Avatar di V|RuS[X]
 
Iscritto dal: May 2001
Città: Isla Bonita Sesso: Grande
Messaggi: 3244
Re: Re: [C++] Un listato strano

Quote:
Originariamente inviato da LuCaP78
[b]

ma come fatea capire sta roba?!!?

Lol
V|RuS[X] è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2002, 09:33   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Come mai hai fatto tutte le funzioni della classe inline ? Se non sbaglio implementare le funzioni membro all'interno della classe implica farle inline...
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Intervista a Stop Killing Games: distruggere videogiochi è come bruciare la musica di Mozart Intervista a Stop Killing Games: distruggere vid...
Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione Samsung Galaxy S25 Edge: il top di gamma ultraso...
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto HP Elitebook Ultra G1i 14 è il notebook c...
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso Microsoft Surface Pro 12 è il 2 in 1 pi&u...
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet! Recensione REDMAGIC Astra Gaming Tablet: che spe...
Tesla sta per lanciare il Robotaxi nella...
Dead Island 2 arriva su Mac, ma a un pre...
FIA e Formula E rinnovano il matrimonio:...
Windows 11 24H2 approda su nuovi sistemi...
Le restrizioni americane hanno generato ...
Una Mercedes EQS con batterie allo stato...
Il robot Walker S2 della Cina cambia la ...
Cosa vuol dire "vantaggio quantisti...
Retelit punta sulla connettività ...
Novità WhatsApp: promemoria sui m...
AMD: la prossima generazione di schede v...
MediaWorld potrebbe diventare cinese: Ce...
Amazon in delirio da sconti: 22 articoli...
EOLO ha più di 700 mila utenti in...
Una spin-off del MIT ha creato dei super...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:15.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v