ďťż
 
 
   [c] pętla i scanf
 
 

Tematy

 
    
 

 

 

 

[c] pętla i scanf





dawidd92 - 14-12-2007 20:13
Napisałem kod który musi wczytać n razy 2 zmienne (tylko muszą być one wprowadzone za jednym razem - w jednej lini):
        for(i=1; i<=wpisy; i++)
                {
                                printf("Podaj wpis nr %d: ", i);
                                scanf("%c %d", &towar, &ile);
                                puts("");
                                printf("%d: towar:%c ile:%d\n", i, towar, ile);
                } I jest problem bo program zachowuje się dziwnie: najpierw pobiera zmienne, później wypisuje wartości - są puste i znowu wypisuje wartości - tym razem poprawne (te które wprowadziłem). Czyli zimienne są wczytywane dopiero po drugim wkonaniu pętli. Gdy zmodyfikuje kod:
        for(i=1; i<=n; i++)
                {
                                printf("Podaj wpis nr %d: ", i);
                                scanf("%c %d", &towar, &ile);
                                scanf("%c %d", &towar, &ile);
                                puts("");
                                printf("%d: towar:%c ile:%d\n", i, towar, ile);
                } wszytko jest ok (wartości wprowadzam raz i program działa dalej tak jakby drugiego scanf wogóle tam nie był)
Dlaczego musze 2 razy wpisać scanf żeby działało ok (tak jak bym 2 razy wpisał)?
Nie wiem czy dobrze to wyjaśniłem, ale mam nadzieję że zrozumiecie :-P



0dd - 15-12-2007 11:27
for(i=1; i<=wpisy; i++)
        {
                printf("Podaj wpis nr %d: ", i);
                scanf("%c %d", &towar, &ile);
                puts("");
                printf("%d: towar:%c ile:%d\n", i, towar, ile);
                char c = getchar();
        } wyjasnienie znajdziesz np tu



grygus - 16-12-2007 22:29

       
       
Wywal jeden scanf() i zamien puts() na getchar(); I powinno działać.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis