Avatar billede mpkj Nybegynder
17. maj 2005 - 22:43 Der er 2 kommentarer og
1 løsning

C: Problem når jeg henter rand() fra fil og vil sammenligne med..

Hej,

Jeg har lavet et lille program der kan hente et random ord fra en txt fil, og gemme den i en string. Problemet er at jeg gerne vil sammenligne det tilfældige ord med en indtastning fra brugeren, og her har jeg opdaget at min rand() tager ordet OG \n, så brugerens indtastning kan aldrig blive = det rand ord.. Her er lidt kode:

Jeg henter rand ord fra txt fil og gemmer i ALine:

FILE *places = fopen("places.txt", "r");
      if(!places)
            {
            fprintf(stderr, "Failed to open places.txt\n");
            return EXIT_FAILURE;
            }   
            srand(time(NULL));
            ATal = 1 + rand()%5;
            for(i = 0; i < ATal; i++)
            fgets(ALine, sizeof(ALine), places);
            printf("%s", ALine);

Her vil jeg sammenligne brugerens indtastning med ALine:
int compare(void)
{
    char guess[256];

    printf("What is your guess?\n");
    scanf("%s", &guess);

                if (strcmp(ALine, guess) == 0)
                printf("Congrats, that was the corretct answer!!\n");

                if (strcmp(ALine, guess) != 0)
                printf("SORRY, that was incorrect!\n");

    system("pause");


return 0;

}


Kan I se hvad jeg kan gøre for enten at den ikke tager \n med når jeg kører rand(), eller får smidt et \n på brugerens indtastning?

Håber at I kan forstå hvor jeg vil hen,
MVH MPKJ.
Avatar billede arne_v Ekspert
17. maj 2005 - 22:47 #1
fgets returnerer linien inkl. \n

prøv:

fgets(ALine, sizeof(ALine), places);
ALine[strlen(ALine)-1] = '\0';
Avatar billede mpkj Nybegynder
18. maj 2005 - 09:05 #2
Mange, tak det var lige det der skulle til ;)
Avatar billede arne_v Ekspert
18. maj 2005 - 09:08 #3
så ligger jeg et svar
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