Kontynuowac TAK/NIE? T/N? w programie - jak to zrobić?

0

Chciałbym na końcu programu zrobić proste zapytanie:

Czy chcesz kontynuować program? T/N
klawisz T = jedziemy dalej po kodzie
klawisz N = komunikat DZIĘKUJEMY ... i koniec programu
dowolny inny klawisz różny od T i N .... komunikat WYBRANO ZŁY KLAWISZ

Kombinuję i mi nie wychodzi. Mógł by ktoś poprawić ten kod by w końcu to zadziałało???
Ludzie, zlitujcie się, plissssss :-)

/* ścieżka pliku users.txt  ==   jeszcze niewymagana  */
/* ścieżka pliku autos.txt  ==   jeszcze niewymagana  */

#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
int main(void)
{
    char* autor = "Gavallon";
    char* wersja = "v3.01";
    char* data = "2017.04.25";
    char* nazwa = "Gavallonik";

    HANDLE kolor;
    kolor = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(kolor, 12);

    printf("\n\n\n");
    printf("\t "
           "---------------------------------------------------------------------------------------"
           "-------- \n");
    printf("                                           Gavallon - Witaj w programie                "
           "           \n");
    printf("\t "
           "---------------------------------------------------------------------------------------"
           "--------\n");

    kolor = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(kolor, 7);

    printf("\t AUTOR PROGRAMU: %s,", autor);
    printf("  WERSJA: %s,", wersja);
    printf("  DATA UTWORZENIA:%s \n\n\n\n\n", data);

    printf("\t Program chcial by zaznajomic sie z uzytkownikiem i w tym celu bedzie wymagal "
           "wprowadzenia odpowiednich danych.\n");
    printf("\t W wersji 3.01 programu wprowadzono mozliwosc zapisu i odczytu danych wprowadzonych "
           "przez uzytkownika na lokalnym dysku twardym.\n");
    printf("\t W celu poprawnego dzialania programu stworz na pulpicie dwa pliki o nazwie:\n\n");
    printf("\t\t users.txt  oraz  autos.txt\n\n");
    printf("\t\t oraz wprowadz sciezke do tego pliku do kodu zrodlowego! Adres linii znajdziesz w "
           "komentarzu na poczatku kodu.\n");
    printf("\t Pliki bazowe w przyszlosci beda tworzone automatycznie przez instalatora "
           "programu!\n\n");
    printf("\t Co nowego jeszcze? \n");
    printf("\t Program zyskal mozliwosc przerwania pracy - wystarczy w dowolnym momencie wcisnac "
           "klawisz: X \n\n");
    printf("\t Zalecana rozdzielczosc konsoli 800x600\n\n");
    printf("\t Aby rozpoczac prace wcisnij ENTER...\n");

    getch();
    system("cls");

    /* deklaracje stałych i zmiennych w programie */
    /* powtorzenie menu jako stałego elementu w programie */

    kolor = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(kolor, 12);

    printf("\n\n\n");
    printf("\t "
           "---------------------------------------------------------------------------------------"
           "-------- \n");
    printf("                                           Gavallon - Witaj w programie                "
           "           \n");
    printf("\t "
           "---------------------------------------------------------------------------------------"
           "--------\n");

    kolor = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(kolor, 7);
    printf("\t AUTOR PROGRAMU: %s,", autor);
    printf("  WERSJA: %s,", wersja);
    printf("  DATA UTWORZENIA:%s \n\n\n\n\n", data);


    /* pobieranie danych od użytkownika */

    char imie[20];
    printf("Podaj swoje imie: \n");
    scanf("%19s", &imie);

    char wiek[3];
    printf("Podaj swoj wiek: \n");
    scanf("%2s", &wiek);

    char miasto[30];
    printf("Podaj nazwe miasta w ktorym mieszkasz: \n");
    scanf("%29s", &miasto);
    printf(" Masz na imie %s, masz %s lat(a) a Twoja miejscowosc to: %s \n\n", imie, wiek, miasto);
    printf("Twoje dane zostaly zapisane do bazy \n");
    printf("W wersji 4.01 programu bedziesz mial(a) mozliwosc wyboru uzytkownika z bazy zapisanych "
           "userow \n\n\n");

    /* zmiana koloru dla komunikatu z ID użytkownika */
    kolor = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(kolor, 10);

    printf("Na chwile obecna nie ma mozliwosci edycji tych danych. \n");
    printf("Nie ma czasu na pierdoly... \n");
    printf("Opcja wyboru i edycji usera pojawi sie w wersji 5.01 programu wraz z MENU \n\n");
    kolor = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(kolor, 7);
    printf(" Aby kontynuowac wcisnij ENTER...");
    /* w późniejszym czasie zostanie dodana pętla do poprawy danych oraz zapytanie KONTYNUOWAC T/N?
     */
    getch();
    system("cls");

    /* strona startowa z ID usera - zwane dalej MENU */

    kolor = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(kolor, 12);

    printf("\n\n\n");
    printf("\t "
           "---------------------------------------------------------------------------------------"
           "-------- \n");
    printf("                                           Gavallon - Witaj w programie                "
           "           \n");
    printf("\t "
           "---------------------------------------------------------------------------------------"
           "--------\n");

    kolor = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(kolor, 10);
    /* dane użytkownika pod menu */

    printf("\tUzytkownik: %s \n \tMiejscowosc: %s \n \tWiek: %s \n\n\n\n", imie, miasto, wiek);

    kolor = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(kolor, 7);

    /* zaczynamy zbierac dane na temat posiadanego samochodu */

    printf("W tej chwili program zacznie zbierac dane dot. Twojego pojazdu. \n");
    printf("Dane te zostana zapisane w pliku: \n");
    printf("baza2.txt \n");
    char marka[15];
    printf("Podaj marke pojazdu: \n");
    scanf("%14s", &marka);
    char model[15];
    printf("Podaj model pojazdu: \n");
    scanf("%14s", &model);
    char tablice[10];
    printf("Podaj numer rejestracyjny: \n");
    scanf("%9s", &tablice);
    char d_produkcji[5];
    printf("Rok produkcji: \n");
    scanf("%4s", &d_produkcji);
    char przeglad[15];
    printf("Wpisz date waznosci badan technicznych w formacie YYYYMMDD np. 20171231 \n");
    scanf("%14s", &przeglad);
    char przebieg[10];
    printf("Wpisz aktualny przebieg auta: \n");
    scanf("%9s", &przebieg);

    char polisa[10];
    printf("Wpisz date waznosci policy OC w formacie YYYYMMDD: \n");
    scanf("%9s", &polisa);

    /* podsumowanie danych pojazdu użytkownika */
    kolor = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(kolor, 10);
    printf("Program zanotowal do bazy ponizsze dane: \n");
    kolor = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(kolor, 7);
    printf("Marka: %s \n", marka);
    printf("Model: %s \n", model);
    printf("Numer rejestracyjny: %s \n", tablice);
    printf("Aktualny przebieg: %s \n", przebieg);
    printf("Rocznik: %s \n", d_produkcji);
    printf("Ubezpieczenie OC wazne do: %s \n", polisa);

    printf("Wcisnij dowolny klawisz by kontynowac!");
    getch();

    system("cls");

    /* dopisanie danych o pojezdzie do tzw. MENU */

    kolor = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(kolor, 12);

    printf("\n\n\n");
    printf("\t "
           "---------------------------------------------------------------------------------------"
           "-------- \n");
    printf("                                           Gavallon - Witaj w programie                "
           "           \n");
    printf("\t "
           "---------------------------------------------------------------------------------------"
           "--------\n");

    kolor = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(kolor, 10);
    /* dane użytkownika pod menu */

    printf("\tUzytkownik: %s \n \tMiejscowosc: %s \n \tWiek: %s \n", imie, miasto, wiek);
    printf("\tMarka pojazdu: %s \n \tModel: %s \n \tData produkcji: %s \n \tNumer rejestracyjny: "
           "%s \n \tPrzebieg: %s KM \n",
        marka, model, d_produkcji, tablice, przebieg);

    kolor = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(kolor, 7);

    /* TESTOWANIE ZAPYTAŃ - TAK / NIE */

    printf("Program jest gotowy do dalszej pracy ... \n ");
    printf("ale i tak sie rozpierdoli! \n ");
    printf("Jesli jestes gotowy to zobaczyc to wcisnij klawisz T\n ");
    getch();

    {
        int wyjscie = 0;
        char kontynuj;
        while (wyjscie == 0)

            printf("\nCzy chcesz kontynuowac? (t/n): ");
        getchar();
        scanf("%c", kontynuj);

        if (kontynuj == 't')
            if (kontynuj == 'n')
                wyjscie = 1;

            else
                printf("Podales bledna litere!\n");
    }
    return 0;
}

1

Źle sformatowany kod i przez to ciężko błąd wychwycić i po while nie ma klamry chyba.

0

ŁoJezusieMaryjo. Gorzej się już napisać tego nie dało? A o funkcjach słyszał?

0

Czyli ma się rozumieć że środowisko programistów to środowisko zamknięte na tzw. bezpłatną "pomocność" ? :-)
Od trzech dni trąbię na forum i cisza... :-)
Ma się też rozumieć że programista zamyka się w czterech ścianach, kuje, uczy a jak już się nauczy to cisza cichosza, joł?? :-)
No teraz to kapuję jak to działa... :-)
Ma się też rozumieć że gdy i ja się nauczę to też jęzorem nie kłapać? No dobraaaaa.... :-)

1

pętla while ma taką budowę

while ( warunek == TRUE ) {
 // kod który ma się wykonać, do póki warunek spełniony
}

Jak dasz same:

while ( warunek)
printf("tylko to się będzie wypisywać.");
printf("To juz się nie będzie wypisywać");

Bez klamerek wykonuje się tylko następna instrukcja, dopóki warunek spełniony.

0

Wyobraź sobie, chcesz otworzyć jakieś drzwi. Ale jest coś dziwnego z tymi drzwiami. Nie daje się otworzyć. Owszem, możesz stanąć i kląć na głos. Ale możesz także podejrzeć, jak inni je otwierają.

0

Właśnie to próbuję robić. Uczę się na żywych przykładach.
Na bazie tego:


#include <stdio.h>
int main(void)
{
int zmienna, cyfra1, cyfra2, wynik, wyjscie=0;
char kontynuj;
while(wyjscie == 0)

{
    
printf("Jaką operację chcesz wykonać?\n1) wyjsc\n2) dzialac\n3) mnożenie\n4) dzielenie\n");
scanf("%d", &zmienna);
printf("Podaj pierwszą cyfrę do operacji: ");
scanf("%d", &cyfra1);
printf("Podaj drugą cyfrę do operacji: ");
scanf("%d", &cyfra2);
switch(zmienna)

{

case 1:
wynik = cyfra1 + cyfra2;
break;

case 2:
wynik = cyfra1 - cyfra2;
break;

case 3:
wynik = cyfra1 * cyfra2;
break;
case 4:
if(cyfra2 == 0)
{
printf("Nie wolno dzielic przez zero\n");
return 1;
}
wynik = cyfra1 / cyfra2;
break;

default:
printf("Wybrales nieistniejaca opcje\n");
return 1;
}
printf("Wynik wynosi: %d\n", wynik);
while(1)
{
printf("\nCzy chcesz wykonac kolejne obliczenie? (t/n): ");
getchar();
scanf("%c", &kontynuj);
if(kontynuj == 't')
{
break;
}
else if(kontynuj == 'n')
{
wyjscie = 1;
break;
}
else

{
printf("Podales bledna litere!\n");
}
}
}
return 0;

}

kombinuje jak to wcielić w swój program i nie wiem gdzie popełniam błąd że tu działa a u mnie nie...

0

Int, char, while u góry w klamrach, niby jest ok, na dole też niby jest ok...


/* ścieżka pliku users.txt  ==     */
/* ścieżka pliku autos.txt  ==     */

#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
int main (void)
{
    char* autor = "Gavallon";
    char* wersja = "v3.01";
    char* data = "2017.04.25";
    char* nazwa = "Gavallonik";
    char = dalej;
    int = wyjscie = 0;
    while(wyjscie == 0)

HANDLE kolor;
        kolor = GetStdHandle( STD_OUTPUT_HANDLE );
            SetConsoleTextAttribute( kolor, 12);

    printf ("\n\n\n");
    printf ("\t ----------------------------------------------------------------------------------------------- \n");
    printf ("                                           Gavallon - Witaj w programie                           \n");
    printf ("\t -----------------------------------------------------------------------------------------------\n");

        kolor = GetStdHandle( STD_OUTPUT_HANDLE );
            SetConsoleTextAttribute( kolor, 7 );

    printf("\t AUTOR PROGRAMU: %s,", autor);
    printf("  WERSJA: %s,", wersja);
    printf("  DATA UTWORZENIA:%s \n\n\n\n\n", data);

    printf ("\t Program chcial by zaznajomic sie z uzytkownikiem i w tym celu bedzie wymagal wprowadzenia odpowiednich danych.\n");
    printf ("\t W wersji 3.01 programu wprowadzono mozliwosc zapisu i odczytu danych wprowadzonych przez uzytkownika na lokalnym dysku twardym.\n");
    printf ("\t W celu poprawnego dzialania programu stworz na pulpicie dwa pliki o nazwie:\n\n");
    printf ("\t\t users.txt  oraz  autos.txt\n\n");
    printf ("\t\t oraz wprowadz sciezke do tego pliku do kodu zrodlowego! Adres linii znajdziesz w komentarzu na poczatku kodu.\n");
    printf ("\t Pliki bazowe w przyszlosci beda tworzone automatycznie przez instalatora programu!\n\n");
    printf ("\t Co nowego jeszcze? \n");
    printf ("\t Program zyskal mozliwosc przerwania pracy - wystarczy w dowolnym momencie wcisnac klawisz: X \n\n");
    printf ("\t Zalecana rozdzielczosc konsoli 800x600\n\n");
    printf ("\t Aby rozpoczac prace wcisnij ENTER...\n");

    getch();
system ("cls");

/* deklaracje stałych i zmiennych w programie */
/* powtorzenie menu jako stałego elementu w programie */

kolor = GetStdHandle( STD_OUTPUT_HANDLE );
            SetConsoleTextAttribute( kolor, 12);

    printf ("\n\n\n");
    printf ("\t ----------------------------------------------------------------------------------------------- \n");
    printf ("                                           Gavallon - Witaj w programie                           \n");
    printf ("\t -----------------------------------------------------------------------------------------------\n");

    kolor = GetStdHandle( STD_OUTPUT_HANDLE );
            SetConsoleTextAttribute( kolor, 7 );
    printf("\t AUTOR PROGRAMU: %s,", autor);
    printf("  WERSJA: %s,", wersja);
    printf("  DATA UTWORZENIA:%s \n\n\n\n\n", data);


/* pobieranie danych od użytkownika */

    char imie [20];
    printf ("Podaj swoje imie: \n");
        scanf ("%19s", &imie);

    char wiek [3];
    printf ("Podaj swoj wiek: \n");
        scanf ("%2s", &wiek);

    char miasto [30];
    printf ("Podaj nazwe miasta w ktorym mieszkasz: \n");
        scanf ("%29s", &miasto);
        printf(" Masz na imie %s, masz %s lat(a) a Twoja miejscowosc to: %s \n\n", imie, wiek, miasto);
        printf ("Twoje dane zostaly zapisane do bazy \n");
        printf ("W wersji 4.01 programu bedziesz mial(a) mozliwosc wyboru uzytkownika z bazy zapisanych userow \n\n\n");

/* zmiana koloru dla komunikatu z ID użytkownika */
        kolor = GetStdHandle( STD_OUTPUT_HANDLE );
            SetConsoleTextAttribute( kolor, 10);

            printf ("Na chwile obecna nie ma mozliwosci edycji tych danych. \n");
            printf ("Nie ma czasu na pierdoly... \n");
            printf ("Opcja wyboru i edycji usera pojawi sie w wersji 5.01 programu wraz z MENU \n\n");
            kolor = GetStdHandle( STD_OUTPUT_HANDLE );
            SetConsoleTextAttribute( kolor, 7 );
            printf (" Aby kontynuowac wcisnij ENTER...");
            /* w późniejszym czasie zostanie dodana pętla do poprawy danych oraz zapytanie KONTYNUOWAC T/N?  */
            getch();
system ("cls");

   /* strona startowa z ID usera - zwane dalej MENU */

    kolor = GetStdHandle( STD_OUTPUT_HANDLE );
            SetConsoleTextAttribute( kolor, 12);

    printf ("\n\n\n");
    printf ("\t ----------------------------------------------------------------------------------------------- \n");
    printf ("                                           Gavallon - Witaj w programie                           \n");
    printf ("\t -----------------------------------------------------------------------------------------------\n");

        kolor = GetStdHandle( STD_OUTPUT_HANDLE );
            SetConsoleTextAttribute( kolor, 10 );
        /* dane użytkownika pod menu */

        printf ("\tUzytkownik: %s \n \tMiejscowosc: %s \n \tWiek: %s \n\n\n\n", imie, miasto, wiek);

        kolor = GetStdHandle( STD_OUTPUT_HANDLE );
            SetConsoleTextAttribute( kolor, 7 );

/* zaczynamy zbierac dane na temat posiadanego samochodu */

    printf("W tej chwili program zacznie zbierac dane dot. Twojego pojazdu. \n");
    printf("Dane te zostana zapisane w pliku: \n");
    printf("baza2.txt \n");
        char marka [15];
            printf ("Podaj marke pojazdu: \n");
                scanf ("%14s", &marka);
        char model [15];
            printf ("Podaj model pojazdu: \n");
                scanf ("%14s", &model);
        char tablice [10];
            printf ("Podaj numer rejestracyjny: \n");
                scanf ("%9s", &tablice);
        char d_produkcji [5];
            printf ("Rok produkcji: \n");
                scanf ("%4s", &d_produkcji);
        char przeglad [15];
            printf ("Wpisz date waznosci badan technicznych w formacie YYYYMMDD np. 20171231 \n");
                scanf ("%14s", &przeglad);
        char przebieg [10];
            printf ("Wpisz aktualny przebieg auta: \n");
                scanf ("%9s", &przebieg);

        char polisa [10];
            printf ("Wpisz date waznosci policy OC w formacie YYYYMMDD: \n");
                scanf ("%9s", &polisa);

                /* podsumowanie danych pojazdu użytkownika */
                kolor = GetStdHandle( STD_OUTPUT_HANDLE );
                    SetConsoleTextAttribute( kolor, 10 );
                printf("Program zanotowal do bazy ponizsze dane: \n");
                kolor = GetStdHandle( STD_OUTPUT_HANDLE );
                    SetConsoleTextAttribute( kolor, 7 );
                printf("Marka: %s \n", marka);
                printf("Model: %s \n", model);
                printf("Numer rejestracyjny: %s \n", tablice);
                printf("Aktualny przebieg: %s \n", przebieg);
                printf("Rocznik: %s \n", d_produkcji);
                printf("Ubezpieczenie OC wazne do: %s \n", polisa);

                printf("Wcisnij dowolny klawisz by kontynowac!");
                getch();

system ("cls");

/* dopisanie danych o pojezdzie do tzw. MENU */

    kolor = GetStdHandle( STD_OUTPUT_HANDLE );
            SetConsoleTextAttribute( kolor, 12);

    printf ("\n\n\n");
    printf ("\t ----------------------------------------------------------------------------------------------- \n");
    printf ("                                           Gavallon - Witaj w programie                           \n");
    printf ("\t -----------------------------------------------------------------------------------------------\n");

        kolor = GetStdHandle( STD_OUTPUT_HANDLE );
            SetConsoleTextAttribute( kolor, 10 );
        /* dane użytkownika pod menu */

        printf ("\tUzytkownik: %s \n \tMiejscowosc: %s \n \tWiek: %s \n", imie, miasto, wiek);
        printf ("\tMarka pojazdu: %s \n \tModel: %s \n \tData produkcji: %s \n \tNumer rejestracyjny: %s \n \tPrzebieg: %s KM \n", marka, model, d_produkcji, tablice, przebieg);

        kolor = GetStdHandle( STD_OUTPUT_HANDLE );
            SetConsoleTextAttribute( kolor, 7 );

        /* TESTOWANIE ZAPYTAŃ - TAK / NIE */

        printf ("Program jest gotowy do dalszej pracy ... \n ");
        printf ("ale i tak sie rozpierdoli! \n ");
        printf ("Jesli jestes gotowy to zobaczyc to wcisnij klawisz T\n ");
getch ();

{
{
printf("\nCzy chcesz kontynuowac? (t/n): ");
getchar();
scanf("%c", &dalej);
if(dalej == 't')
{
break;
}
else if(dalej == 'n')
{
wyjscie = 1;
break;
}
else

{
printf("Podales bledna litere!\n");
}
}
}
return 0;

}

0

O to chodzi:
Zamień to na to:

    {
        int wyjscie = 0;
        char kontynuj;
        while (wyjscie == 0)
 
            printf("\nCzy chcesz kontynuowac? (t/n): ");
        getchar();
        scanf("%c", kontynuj);
 
        if (kontynuj == 't')
            if (kontynuj == 'n')
                wyjscie = 1;
 
            else
                printf("Podales bledna litere!\n");
    }
int wyjscie = 0;
char kontynuj;
while (wyjscie == 0) {
    printf("\nCzy chcesz kontynuowac? (t/n): ");
    getchar();
    scanf("%c", kontynuj);

    if (kontynuj == 't')
        if (kontynuj == 'n')
            wyjscie = 1;

        else
            printf("Podales bledna litere!\n");
} 
0

Nie idzie to.


#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
int main (void)



    {         /* klamra pierwsza - bez niej wywala błąd przy int że nie jest INITIALIZED */



char kontynuj;
int wyjscie = 0;
while (wyjscie == 0)

    {
    printf("\nCzy chcesz kontynuowac? (t/n): ");
    getchar();
    scanf("%c", kontynuj);

    if (kontynuj == 't')
        printf("dzialamy dalej");
        if (kontynuj == 'n')
            wyjscie = 1;

        else
            printf("Podales bledna litere!\n");

    }
return 0;
    }


0
#include <stdio.h>

int main(void)

{ /* klamra pierwsza - bez niej wywala błąd przy int że nie jest INITIALIZED */

    char kontynuj;
    int wyjscie = 0;
    while (wyjscie == 0)

    {
        printf("\nCzy chcesz kontynuowac? (t/n): ");
        scanf("%c", &kontynuj);
				getchar(); // czyści buffor ze znaku '\n' tzn. Enter
        if (kontynuj == 't')
            printf("dzialamy dalej");
        else if (kontynuj == 'n')
            wyjscie = 1;
        else
            printf("Podales bledna litere!\n");
    }
    return 0;
}
0

Niby działa :-)


#include <stdio.h>
int main(void)
{


char kontynuj;
int wyjscie = 0;
while (wyjscie == 0)

{
    printf("\nCzy chcesz kontynuowac? (t/n): ");
    scanf("%c", &kontynuj);
            getchar();
    if (kontynuj == 't')
        printf("dzialamy dalej");

        // jak z tego miejsca zakończyć pętlę po wciśnięciu T i kontynuować dalej program ????
  // program ciągle pyta kontynuować, kontynuować... i tak w nieskończoność

    else if (kontynuj == 'n')
        wyjscie = 1;
    else
        printf("Podales bledna litere!\n");
}

 printf(" KONIEC PROGRAMU");
return 0;
}

1
gavallon napisał(a):
    // jak z tego miejsca zakończyć pętlę po wciśnięciu T i kontynuować dalej program ????

// program ciągle pyta kontynuować, kontynuować... i tak w nieskończoność

Z angielskiego continue :)

continue;

1

sry, znaczy break, to zakończ pętle.

continue - pomija resztę kodu i zaczyna następny obieg pętli.

0

Wiem, wiem ale kurczę jak zapodam break niby tam gdzie ma być to się krzaczy :-)

#include <stdio.h>
int main(void)
{


char kontynuj;
int wyjscie = 0;
while (wyjscie == 0)

{
    printf("\nCzy chcesz kontynuowac? (t/n): ");
    scanf("%c", &kontynuj);
            getchar();
    if (kontynuj == 't')  //break;
        //break;
        printf("dzialamy dalej");
        //break;

    else if (kontynuj == 'n')
        wyjscie = 1;
    else
        printf("Podales bledna litere!\n");
}

 printf(" KONIEC PROGRAMU");
return 0;
}


Gdziekolwiek zapodany brak w tych miejscach powoduje:
error = "else" without a previous 'if'

1
gavallon napisał(a):

Wiem, wiem ale kurczę jak zapodam continue niby tam gdzie ma być to się krzaczy :-)


    if (kontynuj == 't') {
        printf("dzialamy dalej");
        continue; // kontynuowanie następnego obiegu pętli z opuszczeniem reszty.
        //break; // opuszczenie pętli
      }
    else if (kontynuj == 'n')
        wyjscie = 1;
    else
        printf("Podales bledna litere!\n");

Zapomniałeś klamerek przy większej ilości instrukcji niż 1 musisz użyć klamer.

0

Teraz nie wywala błędów i niby działa ale jest inny problem :-) he he

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

int main(void)
{


char kontynuj;
int wyjscie = 0;
while (wyjscie == 0)

{
    printf("\nCzy chcesz kontynuowac? (t/n): ");
    scanf("%c", &kontynuj);
            getchar();
    if (kontynuj == 't')  {

        printf("dzialamy dalej");
        break;
    }
    else if (kontynuj == 'n')
        wyjscie = 1;

    else
        printf("Podales bledna litere!\n");
}

 system ("cls");
 printf(" DALSZA CZESC PROGRAMU");
return 0;
}

W tej chwili naciśnięcie <T> czy <N> kończy program w tym samym miejscu!
Dla klawisza <T> jest to działanie prawidłowe lecz dla <N> już nie bo od tego miejsca:
printf(" DALSZA CZESC PROGRAMU");
będzie kontynuowany kod.
Czego bym nie dopisał to i tak po wciśnięciu klawisza <N> będzie się to wykonywać tak jak bym wybrał klawisz <T>

0

Dobra, poszło, działa.


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

int main(void)
{


char kontynuj;
int wyjscie = 0;
while (wyjscie == 0)

{
    printf("\nCzy chcesz kontynuowac? (t/n): ");
    scanf("%c", &kontynuj);
            getchar();
    if (kontynuj == 't')  {

        printf("dzialamy dalej");
        break;
    }
    else if (kontynuj == 'n')
        return 0;

    else
        printf("Podales bledna litere!\n");
}

 system ("cls");
 printf(" DALSZA CZESC PROGRAMU");
return 0;
}

0
gavallon napisał(a):

Teraz nie wywala błędów i niby działa ale jest inny problem :-) he he

    if (kontynuj == 't')  {

        printf("dzialamy dalej");
        break;
    }
    else if (kontynuj == 'n')
        return 1; // return wychodzi z funkcji i zwraca jakąś wartość dla main wartości inne niż 0 to wyjście z jakiegoś powodu, a zero to prawidłowe wyjście.

    else
        printf("Podales bledna litere!\n");
}
1

Autorem jest ta osoba, która chce integrować ze sobą wszystkie państwowe systemy informatyczne i reformować rynek ubezpieczeń, a także pełna jest innych nowatorskich przesiędsięwzięć, ale z jakichś względów nie potrafi napisać pętli while?

0

@gavallon: Jeżeli chcesz jechać dalej to po co przerywasz pętlę przez break?

1

Nie czepiajcie się go, bo on całe życie spędził z babą, jego mózg jest tak wyprany jak po ciężkich dragach.

Ale się chłopak nawrócił.
I teraz poznaje mechanizmy i jak się nauczy języka C to wtedy w jeden dzień przeczyta całą książkę, którą kupił, bo już wszystko będzie umiał z forum.

0

Właśnie zapodałem return 0; i jest cacy. Dzięki za pomoc kretynowi. Inaczej siebie nie nazwę.
Przejrzałem właśnie wszystkie źródełka które mam do zabawy i wynik całej operacji miałem już wczoraj!
A czemu kretyn?
Bo za szybko czyta...
Pierwszy i ostatni raz! Normalnie aż wstyd bo sam sobie w jednym z komentarzy dopisałem że return 0; może zakończyć mi pętelkę jeśli będzie prawdziwa.
Prawdziwa była ze względu na otrzymanie znaku <N> z klawiatury i wystarczyło ją przerwać.
Zapomniałem też po drodze o tym co będzie się działo po skończeniu kolejnej pętelki którą było oczekiwanie na klawisz <T> ....
:-)
No bałwan i tyle ale drugiego takiego samego błędu to już nie będzie! :-)

4

Czy tylko ja twierdzę, że z nim jest naprawdę źle ? :D

0

Ha,ha,ha...
Szczerość boli? :-)

Ta, ta, tiaaaa... wiem, wiem... nie ma już takich co do własnych błędów się przyznają :-)
i co gorsza robią to dość hucznie :-)

Walić ustrój kolego! Walić! :-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1