Sto impazzendo..a me questa parte di codice sembra tutta giusta, ma alla fine non stampa né mese né anno !!E non capisco come mai, ma quando inserisco il meseil giorno diventa formato da giorno+mese anche se non gliel'ho detto...e così anche per il mese con l'anno :|
codice:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
#define max 50
char nome[max],cognome[max],comune[max],codicefiscale[16],sesso[2],giorno[2],mese[2],anno[4];
int lfisc,i,j=0,p,g=0,m=0,a=0,c=0;
void main(){
printf("Inserisci il tuo cognome : " );
gets(cognome);
printf("Inserisci il tuo nome : ");
gets(nome);
do{
printf("Sei maschio o femmina ? Se maschio scrivi M, femmina scrivi F : ");
scanf("%s",sesso);
}while((sesso[0]!='m')&&(sesso[0]!='f')&&(sesso[0]!='M')&&(sesso[0]!='F'));
gotoxy(0,5);
printf("DATA DI NASCITA : GG/MM/AAAA");
gotoxy(19,5);
while(1) {
p=getch();
//se si preme il tasto BACKSPACE
if(p==8){
//se si é nel campo GIORNO (gg)
if((j>=0)&&(j<=1))
{
//si torna indietro
gotoxy(19,5);
printf("00");
g=0;
j=0;
giorno[g]='\0';
gotoxy(19,5);
}
//se si é nel campo MESE (mm)
else if((j>=3) && (j<= 4))
{
gotoxy(22,5);
printf("00");
m=0;
j=3;
mese[m]='\0';
gotoxy(22,5);
}
//se si é nel campo anno, prime 2 cifre (aa)
else if((j>=6) && (j<= 7))
{
gotoxy(25,5);
printf("0000");
a=0;
j=6;
anno[a]='\0';
gotoxy(25,5);
}
else if(j==8)
{
gotoxy(26,5);
printf("000");
a=0;
j=7;
anno[a]='\0';
gotoxy(26,5);
}
else if(j==9)
{
gotoxy(27,5);
printf("00");
a=0;
j=8;
anno[a]='\0';
gotoxy(27,5);
}
}
//se si preme invio
else if(p==13) {
giorno[2]='\0';
mese[2]='\0';
anno[4]='\0';
break; }
else {
if(j==2)
{
j=3;
gotoxy(22,5);
}
// accetto l'imput da tastiera (1 char alla volta)
// il cursore (j) si trova all'interno del campo giorno gg
if((j>=0) && (j<= 1))
{
giorno[g]=p;
printf("%c", giorno[g]);
j++;
g++;
if(j==2)
{
j=3;
gotoxy(22,5);
}
}
// il cursore (j) si trova all'interno del campo mese mm
else if((j>=3) && (j<= 4))
{
mese[m]=p;
printf("%c", mese[m]);
j++;
m++;
if(j==5)
{
j=6;
gotoxy(25,5);
}
}
// il cursore (j) si trova all'interno del campo anno aaaa
else if((j>=6) && (j<=10))
{
anno[a]=p;
printf("%c", anno[a]);
j++;
a++; } } }
printf("\nIn che comune sei nato ? ");
scanf("%s",comune);
printf("%s / %s / %s",giorno,mese,anno);
}
Aiutatemi per favore *_*
(non fate caso alle troppe variabili, é che ho preso la parte dal programma completo...però questo dovrebbe funzionare da solo ;_;