Salve ragazzi, sono nuovo, ho un errore stranissimo.
Questo è il codice:
codice:
#include <iostream>
#include <fstream>
#include <direct.h>
#include <string>
using namespace std;
class persona{
private:
char nome[20];
char cognome[20];
char indirizzo[20];
char nascita[20];
char email[20];
char telefono[20];
char password[20];
char username[20];
public:
void acquisisci();
void controlla_caratteri(char*,int);
};
void persona::controlla_caratteri(char *vettore,int n)
{
do
{
cin>>vettore;
if(strlen(vettore)>n)
cout<<"Errore,max "<<n<<" caratteri: ";
}while(strlen(vettore)>n);
}
void persona::acquisisci()
{
cout<<"\nMax 20 caratteri!";
cout<<"\nInserisci nome: ";
controlla_caratteri(nome,sizeof(nome));
cout<<"Nome:"<<nome;
cout<<"\nInserisci cognome: ";
controlla_caratteri(cognome,sizeof(cognome));
cout<<"\nInserisci indirizzo: ";
controlla_caratteri(indirizzo,sizeof(indirizzo));
cout<<"\nInserisci nascita: ";
controlla_caratteri(nascita,sizeof(nascita));
cout<<"\nInserisci email: ";
controlla_caratteri(email,sizeof(email));
cout<<"\nInserisci telefono: ";
controlla_caratteri(telefono,sizeof(telefono));
cout<<"\nInserisci password: ";
controlla_caratteri(password,sizeof(password));
}
////////////////////////////////////////////////
int main (){
persona P;
P.acquisisci();
return 0;
}
Ovviamente questo è un pezzettino del codice.
L'errore consiste che quando mando l'eseguibile, se scrivo più di 20 caratteri alla password, dopo giustamete(grazie al controllo) mi chiede di reinserirla, ma anche se la metto inferiore ai 20 caratteri, dopo si blocca il programma!
Qualcuno mi può aiutare???
grazie