CIao raga, ho iniziato a scrivere questo semplice programma RUBRICA TELEFONICA, ma quando lo compilo, va' tutto bene, invece quando lo esegue, quando premo l'ultimo invio per inserire l'indirizzo e-mail, mi dice di fare la segnalazione errori a windows.
codice:
# include <iostream>
# include <stdio.h>
# include <stdlib.h>
# include <cstdio> // Per la funzione fseek
# include <fstream>
using namespace std;
FILE *w,*r;
typedef char NOME;
typedef char COGNOME;
typedef char NUMERO;
typedef char MAIL;
struct rubrica {
NOME nome;
COGNOME cogn;
NUMERO numero;
MAIL mail;
};
void inizia(void);
struct rubrica aquisizione();
void scrittura(struct rubrica A, FILE* w);
int main()
{
int scelta;
struct rubrica A[1];
cout << "RUBRICA telefonica\n"<<endl;
cout << "1) Inizia Rubrica "<<endl;
cout << "2) Aggiungi Contatti "<<endl;
cout << "3) Visualizza contatti "<<endl;
cout << "4) Esci "<<endl;
cin>> scelta;
if (scelta==1)
{
w = fopen("Rubrica.txt","w");
inizia();
A[0]=aquisizione();
scrittura(A[0],w);
}
if (scelta==2)
{
}
if (scelta==3)
{
}
fclose(w);
system("PAUSE");
}
//------------------------------------------------------------------------------
void inizia()
{
fputs ( "NOME" , w );
fseek ( w , 20 , SEEK_SET ); // Sposta il cursore dall'inizio del File di 20 byte
fputs ( "|COGNOME" , w );
fseek ( w , 41 , SEEK_SET );
fputs ( "|NUMERO" , w );
fseek ( w , 55 , SEEK_SET );
fputs ( "|E-MAIL" , w );
}
//------------------------------------------------------------------------------
struct rubrica aquisizione()
{
struct rubrica A;
printf("Inserisci il nome :\n");
scanf("%s",&A.nome);
printf("Inserisci il cognome :\n");
scanf("%s",&A.cogn);
printf("Inserisci il numero :\n");
scanf("%s",&A.numero);
printf("Inserisci l' e-mail :\n");
scanf("%s",&A.mail);
return A;
}
//------------------------------------------------------------------------------
void scrittura(struct rubrica A, FILE* w)
{
fprintf(w, "%-20s",A.nome);
fprintf(w, "%-20s",A.cogn);
fprintf(w, "%-14s",A.numero);
fprintf(w, "%-20s\n",A.mail);
fflush(w);
}