Avatar billede reddevil Nybegynder
29. oktober 2004 - 03:10 Der er 3 kommentarer og
3 løsninger

Svarkontrol i C

Jeg har lidt problemer med den foelgende kode. Det har foer virket fint for mig naar det var en int og ikke char jeg brugte, men nu fortsaetter programmet bare med at koere lige forbi der hvor man skal indtaste Y/N.. Og det er jo mening at det skal stoppe op og give brugeren mulighed for at komme med input.. Help??

char YesNo;

do
{

  EN MASSE KODE

  printf("\n\nWanna try it one more time? (Y/N): ");
  scanf("%c", &YesNo);
} while (YesNo != 'N')
Avatar billede reddevil Nybegynder
29. oktober 2004 - 03:12 #1
jeg kunne ogsaa have brugt getchar i stedet for scanf der, men det aendre ikke noget andet end det vist er bedre programmeringsstil?!?
Avatar billede viciodk Praktikant
29. oktober 2004 - 07:18 #2
Jeg har ikke mulighed for at teste denne kode, men prøv:

char YesNo = 'y';

//KODE

while(1)
{
  printf("Wanna try it one more time? (Y/N): ");
  scanf("%c", &YesNo);

  // Flush the buffer to ensure nothing's left in the input buffer
  _flushall();

  if (YesNo != 'y' && YesNo != 'n')
    printf("Invalid input Please try again: ");
  else
    break;           
}
Avatar billede viciodk Praktikant
29. oktober 2004 - 07:22 #3
Damn, jeg kan allerede se at det ikke vil virke da man koden slet ikke ikke bliver udført igen. Anyways, jeg skal til at gå men prøv at smide _flushall(); ind i din egen kode efter du har fået output fra brugeren. Og afvis så bare mit svar.
Avatar billede viciodk Praktikant
29. oktober 2004 - 11:39 #4
Således må man kunne lave det :)

#include<stdio.h>

int main()
{
    char YesNo = 'y';

    while(YesNo == 'y')
    {
        // Code

        printf("Wanna try it one more time? (Y/N): ");
        scanf("%c", &YesNo);

        // Flush the buffer to ensure nothing's left in the input buffer
        _flushall();

        while (YesNo != 'y' && YesNo != 'n')
            printf("Invalid input Please try again: ");
    }

    return 1;
}
Avatar billede viciodk Praktikant
29. oktober 2004 - 11:44 #5
Og det kunne man så ikke alligevel. Det virkede egentlig da jeg kompilede første gang men ikke anden... Opgiver det bare så. :/
Avatar billede reddevil Nybegynder
29. oktober 2004 - 15:52 #6
damn, alt der skulle til var et mellemrum foer %c.. altsaa  scanf(" %c", &YesNo);

men du skal da have mange tak for forsoeget vicio, det er rart der altid er nogle der er klar paa at hjaelpe lidt..
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