Avatar billede hclarsen Nybegynder
06. juni 2009 - 17:33 Der er 1 kommentar og
1 løsning

scanf i C

Hej

Se venligst følgende kode. som er selvforklarende:

***************************

#include <stdio.h>
#include <conio.h>


int main()
{
    int d, a, m;
    char x, y;

    printf("Skriv datoen paa formen dd.mm.yy, dd/mm-yy eller dd/mm/yy: ");
    scanf("%d%c%d%c%d", &d, &x, &m, &y, &a);
       
    if((x=='.') && (y=='.'))
    {
        printf("%d.%d.%d", d, m, a);
    }
    else if((x=='/') && (y=='-'))
    {
        printf("%d.%d.%d", d, m, a);
    }
    else if((x=='/') && (y=='/'))
    {
        printf("%d.%d.%d", d, m, a);
    }
    printf("%c%c%d%d%d", x,y,d,a,m);


    getch();
    return 0;

}

***************************

Mit problem er, at hvis en person indtaster noget i stil med asd-asd-asd fremfor 10-10-10, så melder den fejl. Hvordan kan man gardere sig mod sådanne tilfælde, når man bruger scanf?
Avatar billede arne_v Ekspert
06. juni 2009 - 17:41 #1
Jeg tror at du skal læse hele linien ind med gets/fgets og så parse den derfra.
Avatar billede arne_v Ekspert
04. august 2009 - 04:07 #2
OK ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester