Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2012-12-17 12:29:28

  Kamil2685 - Użytkownik

Kamil2685
Użytkownik
Zarejestrowany: 2011-04-06

Program w C problem z do while

Witam,
mam taki programik ktory pownien zliczac ilosc literek w tekscie

Kod:

#include <stdio.h>
#include <iostream>
#include <cstdlib>

int main()
{
char znak;
int petla;
int ilosc_znakow;

do {
printf("\nWprowadz tekst: ");
ilosc_znakow = 0;
for (ilosc_znakow = 0; getchar() != '\n'; ++ilosc_znakow);
printf("%d\n", ilosc_znakow);

for (petla=1; petla<=ilosc_znakow;++petla)
{
printf( "*" );
}

printf("\nCzy chcesz zakonczyc program (t/n)");
// cin>>znak;
scanf("%c",&znak);

}while(znak!='t');
system("pause");

}

Wszystko dziala calkiem ok do momentu pytania o powtorzenie dzialania, tzn wyjsc z programu wyjdzie jesli damy t ale nie wykona ponownie petli tylko bd wypisywal ze nie ma wcale znakow.
co jest nie tak?
Z gory dzieki za pomoc.

Offline

 

#2  2012-12-17 13:05:40

  djjanek - Użytkownik

djjanek
Użytkownik
Skąd: whereis
Zarejestrowany: 2007-11-15
Serwis

Re: Program w C problem z do while

NIe wiem ale jak ja kiedyś uczyłęm się programowac to nie pobierało się zmiennej ikrementacyjnej z pętli FOR bo to była niepewna dana, ale może się coś zmieniło.

Offline

 

#3  2012-12-17 14:34:14

  jedrzejw - Nowy użytkownik

jedrzejw
Nowy użytkownik
Zarejestrowany: 2012-12-17

Re: Program w C problem z do while

Kod:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char znak;
    int petla;
    int ilosc_znakow;
    
    do {
        printf("\nWprowadz tekst: ");
        ilosc_znakow = 0;
        for (ilosc_znakow = 0; getchar() != '\n'; ++ilosc_znakow);
        printf("%d\n", ilosc_znakow);
    
        for (petla=1; petla<=ilosc_znakow;++petla)
        {
            printf( "*" );
        }
        
        printf("\nCzy chcesz zakonczyc program (t/n)");
        // cin>>znak;
        scanf("%c",&znak);
        getchar();
    }while(znak!='t');
    //system("pause");
    return 0;
}

Na koniec pobierasz znak ale w buforze jest jeszcze Enter ('\n'), którego to pobiera później pętla for.

Offline

 

#4  2012-12-17 21:53:31

  Kamil2685 - Użytkownik

Kamil2685
Użytkownik
Zarejestrowany: 2011-04-06

Re: Program w C problem z do while

Pomogło, ślicznie dziękuję za pomoc.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)