Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Pannello QD-OLED da 32 pollici con risoluzione 4K, frequenza di aggiornamento a 240Hz e tempi di risposta rapidissimi: il Gigabyte MO32U24 evolve il progetto del suo predecessore MO32U e alza ulteriormente l'asticella delle prestazioni. È ancora una volta un monitor indirizzato ai giocatori più esigenti
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
realme 16 5G è un nuovo smartphone con sensore Sony IMX 852 da 50MP sul retro e uno specchio selfie fisico integrato nella camera bar, una prima nel segmento di mercato. Batteria da 6550mAh in un corpo da 8,1mm e 183g, certificazione IP69K e ricarica da 45W completano un pacchetto aggressivo per la fascia media, per uno dei prodotti più interessanti del produttore sul piano commerciale
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Sono ormai definitive le nuove norme del Codice della Strada per i monopattini elettrici. Non solo targa e assicurazione, le regole sono tante e riguardano diversi aspetti, vi spieghiamo come evitare sanzioni che possono essere salate
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


Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming Gigabyte MO32U24 OLED: il 4K a 240Hz su un panne...
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
La Radeon RX 9070 XT appare su Steam e m...
L'America si ribella ai datacenter: bloc...
'Artificial General Engineer': l'IA di J...
Il drone NASA Dragonfly, che voler&agrav...
Stop immediato a Fable 5 e Mythos 5: il ...
"Prime Day Amazon il 23-26 giugno": sì e...
Oggi 2 super MacBook Pro M5 e M5 Pro, 24...
Tineco Floor One Station S9 Artist: il s...
Raggiunte nuove altitudine e velocit&agr...
Apple Watch Series 11 GPS a 339€ su Amaz...
Come un MacBook, ma con la RTX 5070: MSI...
Paolo Zaccardi: "Smettere di assume...
Finalmente a buon prezzo 2 mini PC con R...
Samsung Galaxy Watch 7: uno crolla a 146...
NVIDIA pronta al 'piano B' per la Cina: ...
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: 13:18.


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