-hide-
12-01-2009, 19:39
Questo di seguito è il codice di un programma da me realizzato che su windows funziona, ma su mac no.
Cosa devo aggiustare per portarlo su Mac?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ELEM 100 // Numero massimo di contatti
#define NCHAR 21 // Numero di caratteri per l'erray
// Definizione della struttura
typedef struct {
char nome[NCHAR];
char cognome[NCHAR];
char telefono[NCHAR];
char citta[NCHAR];
} account;
// Variabili globali
account rubrica[ELEM];
int num_account = 0;
// Prototipi delle funzioni
void InsContatto (char nom[], char cogn[], char tel[], char cit[]);
void ModContatto (char nom[], char cogn[]);
void Cancella (char nom[], char cogn[]);
void Visualizza (char nom[], char cogn[]);
int main()
{ //OPEN main
int scelta; /* per inserire la scelta del menu' */
char n[NCHAR]; /* per inserire il nome */
char m[NCHAR]; /* per inserire il cognome */
char c[NCHAR]; /* per inserire la citta' */
char t[NCHAR]; /* per inserire il numero di telefono */
for (;scelta!= 0;)
{ //OPEN for
printf ("Rubrica V 1.0\n\n");
printf ("\t\t INDEX\n");
printf ("\t***************************\n");
printf ("\t* 1 - Inserisci Contatto *\n");
printf ("\t* 2 - Modifica Contatto *\n");
printf ("\t* 3 - Cancella Contatto *\n");
printf ("\t* 4 - Visualizza Contatto *\n");
printf ("\t* *\n");
printf ("\t* 0 - Esci dal programma *\n");
printf ("\t***************************\n\n");
printf ("Digita: ");
scanf ("%d", &scelta);
switch (scelta)
{ //OPEN switch
case 0: // Exit
break;
case 1: // Inserisci contatto
printf ("\nNome: ");
fflush (stdin);
gets (n);
printf ("Cognome: ");
fflush (stdin);
gets (m);
printf ("Telefono: ");
fflush (stdin);
gets (t);
printf ("Citta': ");
fflush (stdin);
gets (c);
printf ("\n");
InsContatto(n,m,t,c);
break;
case 2: // Modifica Contatto
printf ("\nNome: ");
fflush (stdin);
gets (n);
printf ("Cognome: ");
fflush (stdin);
gets (m);
ModContatto (n,m);
break;
case 3: // Cancella
printf ("\nNome: ");
fflush (stdin);
gets (n);
printf ("Cognome: ");
fflush (stdin);
gets (m);
Cancella (n,m);
break;
case 4: // Visualizza
printf ("\nNome: ");
fflush (stdin);
gets (n);
printf ("Cognome: ");
fflush (stdin);
gets (m);
Visualizza (n,m);
break;
} //CLOSED switch
} //CLOSED for
return 0;
} //CLOSED main
// Definizione delle funzioni
void InsContatto (char nom[], char cogn[], char tel[], char cit[])
{ //OPEN InsContatto
int i;
if (num_account == ELEM)
{ //OPEN if
printf ("Hai raggiunto il limite massimo di contatti\n\n");
return;
} //CLOSED if
for (i=0; i<=num_account; i++)
{ //OPEN for
if ((strcmp (nom,rubrica[i].nome)==0) && (strcmp (cogn,rubrica[i].cognome)==0))
{ //OPEN if
printf ("Nome e Cognome utente esistono in memoria\n\n");
return;
} //CLOSED if
} //CLOSED for
strcpy (rubrica[num_account].nome,nom);
strcpy (rubrica[num_account].cognome,cogn);
strcpy (rubrica[num_account].telefono,tel);
strcpy (rubrica[num_account].citta,cit);
printf ("\nIl contatto e' stato inserito correttamente\n\n");
num_account++;
return;
} //CLOSED InsContatto
void ModContatto (char nom[], char cogn[])
{ //OPEN ModContatto
int i;
for (i=0; i<=num_account; i++)
{ //OPEN for
if ((strcmp (nom,rubrica[i].nome)!=0) && (strcmp (cogn,rubrica[i].cognome)!=0))
{ //OPEN if
printf ("Il contatto non esiste\n\n");
return;
} //CLOSED if
else
{ //OPEN else
printf("Nuovo Nome: ");
fflush (stdin);
gets (rubrica[i].nome);
printf("Nuovo Cognome: ");
fflush (stdin);
gets (rubrica[i].cognome);
printf("Nuovo Telefono: ");
fflush (stdin);
gets (rubrica[i].telefono);
printf("Nuova Citta': ");
fflush (stdin);
gets (rubrica[i].citta);
return;
} //CLOSED else
} //CLOSED for
} //CLOSED ModContatto
void Cancella (char nom[], char cogn[])
{ //OPEN cancella
int i;
for (i=0; i<=num_account; i++)
{ //OPEN for
if ((strcmp (nom,rubrica[i].nome)!=0) && (strcmp (cogn,rubrica[i].cognome)!=0))
{ //OPEN if
printf ("Il contatto non esiste\n\n");
return;
} //CLOSED if
else
{ //OPEN else
rubrica[i].nome[0] ='\0';
rubrica[i].cognome[0] ='\0';
rubrica[i].telefono[0] ='\0';
rubrica[i].citta[0] ='\0';
printf ("\nContatto cancellato\n\n");
num_account--;
return;
} //CLOSED else
} //CLOSED for
} //CLOSED Cancella
void Visualizza (char nom[], char cogn[])
{ //OPEN Visualizza
int i;
for (i=0; i<=num_account; i++)
{ //OPEN for
if ((strcmp (nom,rubrica[i].nome)==0) && (strcmp (cogn,rubrica[i].cognome)==0))
{ //OPEN if
printf ("Il contatto scelto e': \n");
printf ("\n%s %s\n", rubrica[i].nome, rubrica[i].cognome);
printf ("%s\n%s\n\n", rubrica[i].telefono, rubrica[i].citta);
return;
} //CLOSED if
else
{ //OPEN else
printf ("Il contatto non esiste\n\n");
return;
} //CLOSED else
} //CLOSED for
} //CLOSED Visualizza
Cosa devo aggiustare per portarlo su Mac?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ELEM 100 // Numero massimo di contatti
#define NCHAR 21 // Numero di caratteri per l'erray
// Definizione della struttura
typedef struct {
char nome[NCHAR];
char cognome[NCHAR];
char telefono[NCHAR];
char citta[NCHAR];
} account;
// Variabili globali
account rubrica[ELEM];
int num_account = 0;
// Prototipi delle funzioni
void InsContatto (char nom[], char cogn[], char tel[], char cit[]);
void ModContatto (char nom[], char cogn[]);
void Cancella (char nom[], char cogn[]);
void Visualizza (char nom[], char cogn[]);
int main()
{ //OPEN main
int scelta; /* per inserire la scelta del menu' */
char n[NCHAR]; /* per inserire il nome */
char m[NCHAR]; /* per inserire il cognome */
char c[NCHAR]; /* per inserire la citta' */
char t[NCHAR]; /* per inserire il numero di telefono */
for (;scelta!= 0;)
{ //OPEN for
printf ("Rubrica V 1.0\n\n");
printf ("\t\t INDEX\n");
printf ("\t***************************\n");
printf ("\t* 1 - Inserisci Contatto *\n");
printf ("\t* 2 - Modifica Contatto *\n");
printf ("\t* 3 - Cancella Contatto *\n");
printf ("\t* 4 - Visualizza Contatto *\n");
printf ("\t* *\n");
printf ("\t* 0 - Esci dal programma *\n");
printf ("\t***************************\n\n");
printf ("Digita: ");
scanf ("%d", &scelta);
switch (scelta)
{ //OPEN switch
case 0: // Exit
break;
case 1: // Inserisci contatto
printf ("\nNome: ");
fflush (stdin);
gets (n);
printf ("Cognome: ");
fflush (stdin);
gets (m);
printf ("Telefono: ");
fflush (stdin);
gets (t);
printf ("Citta': ");
fflush (stdin);
gets (c);
printf ("\n");
InsContatto(n,m,t,c);
break;
case 2: // Modifica Contatto
printf ("\nNome: ");
fflush (stdin);
gets (n);
printf ("Cognome: ");
fflush (stdin);
gets (m);
ModContatto (n,m);
break;
case 3: // Cancella
printf ("\nNome: ");
fflush (stdin);
gets (n);
printf ("Cognome: ");
fflush (stdin);
gets (m);
Cancella (n,m);
break;
case 4: // Visualizza
printf ("\nNome: ");
fflush (stdin);
gets (n);
printf ("Cognome: ");
fflush (stdin);
gets (m);
Visualizza (n,m);
break;
} //CLOSED switch
} //CLOSED for
return 0;
} //CLOSED main
// Definizione delle funzioni
void InsContatto (char nom[], char cogn[], char tel[], char cit[])
{ //OPEN InsContatto
int i;
if (num_account == ELEM)
{ //OPEN if
printf ("Hai raggiunto il limite massimo di contatti\n\n");
return;
} //CLOSED if
for (i=0; i<=num_account; i++)
{ //OPEN for
if ((strcmp (nom,rubrica[i].nome)==0) && (strcmp (cogn,rubrica[i].cognome)==0))
{ //OPEN if
printf ("Nome e Cognome utente esistono in memoria\n\n");
return;
} //CLOSED if
} //CLOSED for
strcpy (rubrica[num_account].nome,nom);
strcpy (rubrica[num_account].cognome,cogn);
strcpy (rubrica[num_account].telefono,tel);
strcpy (rubrica[num_account].citta,cit);
printf ("\nIl contatto e' stato inserito correttamente\n\n");
num_account++;
return;
} //CLOSED InsContatto
void ModContatto (char nom[], char cogn[])
{ //OPEN ModContatto
int i;
for (i=0; i<=num_account; i++)
{ //OPEN for
if ((strcmp (nom,rubrica[i].nome)!=0) && (strcmp (cogn,rubrica[i].cognome)!=0))
{ //OPEN if
printf ("Il contatto non esiste\n\n");
return;
} //CLOSED if
else
{ //OPEN else
printf("Nuovo Nome: ");
fflush (stdin);
gets (rubrica[i].nome);
printf("Nuovo Cognome: ");
fflush (stdin);
gets (rubrica[i].cognome);
printf("Nuovo Telefono: ");
fflush (stdin);
gets (rubrica[i].telefono);
printf("Nuova Citta': ");
fflush (stdin);
gets (rubrica[i].citta);
return;
} //CLOSED else
} //CLOSED for
} //CLOSED ModContatto
void Cancella (char nom[], char cogn[])
{ //OPEN cancella
int i;
for (i=0; i<=num_account; i++)
{ //OPEN for
if ((strcmp (nom,rubrica[i].nome)!=0) && (strcmp (cogn,rubrica[i].cognome)!=0))
{ //OPEN if
printf ("Il contatto non esiste\n\n");
return;
} //CLOSED if
else
{ //OPEN else
rubrica[i].nome[0] ='\0';
rubrica[i].cognome[0] ='\0';
rubrica[i].telefono[0] ='\0';
rubrica[i].citta[0] ='\0';
printf ("\nContatto cancellato\n\n");
num_account--;
return;
} //CLOSED else
} //CLOSED for
} //CLOSED Cancella
void Visualizza (char nom[], char cogn[])
{ //OPEN Visualizza
int i;
for (i=0; i<=num_account; i++)
{ //OPEN for
if ((strcmp (nom,rubrica[i].nome)==0) && (strcmp (cogn,rubrica[i].cognome)==0))
{ //OPEN if
printf ("Il contatto scelto e': \n");
printf ("\n%s %s\n", rubrica[i].nome, rubrica[i].cognome);
printf ("%s\n%s\n\n", rubrica[i].telefono, rubrica[i].citta);
return;
} //CLOSED if
else
{ //OPEN else
printf ("Il contatto non esiste\n\n");
return;
} //CLOSED else
} //CLOSED for
} //CLOSED Visualizza