• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

otwieranie pliku .exe

VPS Starter Arubacloud
0 głosów
446 wizyt
pytanie zadane 25 czerwca 2020 w Systemy operacyjne, programy przez Marcinuq Użytkownik (640 p.)
edycja 25 czerwca 2020 przez Marcinuq

Witam!

Mimo to, że przed returnem mam napisane getch(); , program po uruchomieniu i po napisaniu tekstu w tym programie, zamyka się odrazu mimo, tego że na codeblocks działa normalnie ten program. Jak mogę to naprawić?

Tu jest kod: 

#include <iostream>
#include <list>
#include <cstdlib>
#include <windows.h>
#include <fstream>
#include <conio.h>
using namespace std;

list <string> lista;

void dodajpocz()
{
    string n;
    cout<<"Podaj imie i nazwisko osoby, która chesz dodac: ";
    cin.ignore();
    getline(cin, n);
    lista.push_front(n);
}
void dodajkon()
{
    string n;
    cout<<"Podaj imie i nazwisko osoby, która chesz dodac: ";
    cin.ignore();
    getline(cin, n);
    lista.push_back(n);
}
void usunpocz()
{
    lista.pop_front();
    cout<<"Pomyslnie usunales/usunelas osobe z listy"<<endl;
    Sleep(2000);
}
void usunkon()
{
    lista.pop_back();
    cout<<"Pomyslnie usunales/usunelas osobe z listy"<<endl;
    Sleep(2000);
}
void rozmiar()
{
    cout<<"Liczba osob na liscie: "<< lista.size()<<endl;
    Sleep(2000);
}
void sortowanie()
{
    lista.sort();
}
void wyswietl()
{
    int a=0;
    for(list <string>::iterator i=lista.begin(); i!=lista.end();i++)
        {
            a++;
            cout<<a<<". "<<*i<<endl;
        }
}

int main()
{
    setlocale(LC_ALL,"");
    string lokalizacja; ///u¿ytkownik podaje lokalizacjê swojego pliku
    cout<<"Podaj lokalizacje pliku: ";
    cin>>lokalizacja;
    fstream plik;
    plik.open(lokalizacja);
    if(plik.is_open())
    {
        cout<<"Udalo sie otworzyc plik"<<endl;
    }
    else
    {
        cout<<"Cos poszlo nie tak..."<<endl;
        exit(0);
    }

    int wybor=0;
    while(wybor!=7)
    {
        cout<<"\tLISTA OSOB"<<endl;
        cout<<"--------------------------------"<<endl;
        wyswietl();
        cout<<"--------------------------------"<<endl;


        cout<<"Menu"<<endl;
        cout<<"1.Dodaj osobe na koniec listy."<<endl;
        cout<<"2.Dodaj osobe na poczatek listy."<<endl;
        cout<<"3.Usun osobe z konca listy."<<endl;
        cout<<"4.Usun osobe z poczatku listy."<<endl;
        cout<<"5.Sprawdz rozmiar listy."<<endl;
        cout<<"6.Posortuj liste alfabetycznie."<<endl;
        cout<<"7.Wyjdz z aplikacji."<<endl;
        cout<<"Wybierz opcje: ";
        cin>>wybor;
        switch(wybor)
        {
            case 2:
                {
                    dodajpocz();

                    break;
                }
            case 1:
                {
                    dodajkon();

                    break;
                }
            case 4:
                {
                    usunpocz();

                    break;
                }
            case 3:
                {
                    usunkon();
                    break;
                }
            case 5:
                {
                    rozmiar();

                    break;
                }
            case 6:
                {
                    sortowanie();

                    break;
                }
            case 7:
                {
                    cout<<"Czekaj trwa zapisywanie listy do pliku..."<<endl;
                    int a=0;
                    plik<<"Lista Wycieczkowiczow"<<endl;
                    for(list <string>::iterator i=lista.begin(); i!=lista.end();i++)
                    {
                        ++a;
                        plik<<a<<". "<<*i<<endl;
                    }

                    exit(0);
                    break;
                }
        }
        system("cls");
    }
    plik.close();
    
    getch();
    return 0;
}

 

komentarz 25 czerwca 2020 przez tkz Nałogowiec (42,000 p.)
Może coś jest w buforze. Bez kodu trudno stwierdzić.
komentarz 25 czerwca 2020 przez Marcinuq Użytkownik (640 p.)
Dodałem kod :).
komentarz 25 czerwca 2020 przez tkz Nałogowiec (42,000 p.)
Nigdy nie dojdziesz do tego momentu, przez Twoje exit(0)(co nie jest najlepszym pomysłem). W ogóle dlaczego masz break'i w casach?
komentarz 25 czerwca 2020 przez Marcinuq Użytkownik (640 p.)
A ok, a te break'i po to by funkcje z tych dalszych przypadków się nie wykonywały.
komentarz 25 czerwca 2020 przez tkz Nałogowiec (42,000 p.)
Z zasady stawia się je za ostatnim nawiasem.
komentarz 25 czerwca 2020 przez Marcinuq Użytkownik (640 p.)
no dobra, ale mi działa. Tylko co mam zrobić zamiast tego exita żeby mi ten program.exe pokazywał wszystko, a nie zamykał się po napisaniu tej lokalizacji.
komentarz 25 czerwca 2020 przez tkz Nałogowiec (42,000 p.)
W którym momencie się zamyka? Zmień pozycje  getch(); na tam, gdzie chcesz by się zatrzymało.
komentarz 25 czerwca 2020 przez Marcinuq Użytkownik (640 p.)

Ok dziękuje za pomoc. Wszystko działalaugh

1 odpowiedź

0 głosów
odpowiedź 25 czerwca 2020 przez BlayUng Początkujący (260 p.)

Mi to działa jak zrobię tak:

int pause;
pause=getch();
return 0;
komentarz 25 czerwca 2020 przez Marcinuq Użytkownik (640 p.)
To nic nie dało :( nadal się zamyka
komentarz 25 czerwca 2020 przez BlayUng Początkujący (260 p.)
A przed zamknięciem coś klikałeś?
komentarz 25 czerwca 2020 przez Marcinuq Użytkownik (640 p.)
Enter, żeby zatwierdzić tekst który napisałem

Podobne pytania

0 głosów
2 odpowiedzi 1,926 wizyt
pytanie zadane 11 września 2015 w C i C++ przez C☺ndzi Stary wyjadacz (12,100 p.)
+1 głos
0 odpowiedzi 515 wizyt
pytanie zadane 21 lipca 2020 w C i C++ przez student33 Początkujący (250 p.)
+3 głosów
2 odpowiedzi 4,253 wizyt
pytanie zadane 9 września 2019 w Inne języki przez Mavimix Dyskutant (8,390 p.)

92,453 zapytań

141,262 odpowiedzi

319,086 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...