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

Problem z funkcją "switch" i "fstream" - C++

Object Storage Arubacloud
0 głosów
489 wizyt
pytanie zadane 6 kwietnia 2016 w C i C++ przez Proszek73 Obywatel (1,140 p.)

Mam problem ze "switch'em" w C++:

Gdy chcę wybrać opcję pierwszą on nie zwraca danego kodu.

To mój kod:

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <unistd.h>


using namespace std;

int main()
{
string login, haslo, trescnotki, nazwapliku;
char wyboruser, wybortwo;

    cout << "Witaj w TwoNote+! Wybierz opcję którą chcesz wykonać za pomocą TwoNote.\n" << endl;
    cout << "(1) - Logowanie" << endl;
    cout << "(2) - Pomoc" << endl;
    cout << "" << endl;
    cout << "Twój wybór: "; cin >> wyboruser;
    switch (wyboruser)
    {
    case '1': system ("clear");
cout << "Aby zalogować się do TwoNote, wpisz login i hasło." << endl;
cout << "Podaj login: " << endl; cin >> login;
cout << "Podaj hasło: " << endl; cin >> haslo;
if ((login=="a"&&haslo=="a"))
{
system ("clear");
cout << "(1) - Zapis notatki " << endl;
cout << "" << endl;
cout << "Twój wybór: " << endl; cin >> wybortwo;
}
else
{
cout << "Twoje hasło jest niepoprawne!" << endl;
}
break;

case '2':
cout << "Kody błędów:" << endl;
cout << "Pojawią się w pełnej wersji (1.1)" << endl;
cout << "Nie działające funkcje:" << endl;
cout << "Nazwa pliku notki" << endl;
cout << "Opcja wyboru: Zły wybór" << endl;
cout << "Wersja: TwoNote+ InvDev 0.1" << endl;
break;

default:
cout << "Zły wybór!" << endl;
break;

switch (wybortwo)
{
case '1':

system ("clear");
fstream notka;
cout << "Wpisz nazwę pliku: " << endl; cin >> nazwapliku;
notka.open("<<nazwapliku<<.txt", ios::out);
cout << "Wpisz treść notatki:" << endl;
cin >> trescnotki;
notka<<trescnotki<<endl;
notka.close();
break;


}




    }









    return 0;
}

A problem z fstream jest taki:

Gdy chcę zapisać plik on zwraca błąd.

4 odpowiedzi

0 głosów
odpowiedź 6 kwietnia 2016 przez TheFeniks Gaduła (4,690 p.)
wybrane 7 kwietnia 2016 przez Proszek73
 
Najlepsza

Popraw czytelność bo mnie oczy od tego oczy bolą ;P

►Nie używaj polskich znaków bo krzaki są w konsoli.

►Zrób pętle w menu bo jak wpisze się w menu coś innego niż '1' czy '2' to program się wyłącza.

►Klamra switch'a 'wybor_user'

►Zmień jeszcze te '1' na poprostu 1

►Zmień typ char na int

►Zmieniłem ten "clear" na "cls" i jest juz ok

Masz poprawiony kod :

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <unistd.h>


using namespace std;

int main()
{
string login, haslo, trescnotki, nazwapliku;
char wyboruser, wybortwo;

    cout << "Witaj w TwoNote+! Wybierz opcjê któr¹ chcesz wykonaæ za pomoc¹ TwoNote.\n" << endl;
    cout << "(1) - Logowanie" << endl;
    cout << "(2) - Pomoc" << endl;
    cout << "" << endl;
    cout << "Twój wybór: "; cin >> wyboruser;
    switch (wyboruser)
    {//TO TA KLAMRA
     case '1': system ("clear");   
     cout << "Aby zalogowaæ siê do TwoNote, wpisz login i has³o." << endl;
     cout << "Podaj login: " << endl; cin >> login;
     cout << "Podaj has³o: " << endl; cin >> haslo;
     if ((login=="a"&&haslo=="a"))
     {
      system ("clear");
      cout << "(1) - Zapis notatki " << endl;
      cout << "" << endl;
      cout << "Twój wybór: " << endl; cin >> wybortwo;
     }
     else
     {
      cout << "Twoje has³o jest niepoprawne!" << endl;
     }
     
    case '2':
     cout << "Kody b³êdów:" << endl;
     cout << "Pojawi¹ siê w pe³nej wersji (1.1)" << endl;
     cout << "Nie dzia³aj¹ce funkcje:" << endl;
     cout << "Nazwa pliku notki" << endl;
     cout << "Opcja wyboru: Z³y wybór" << endl;
     cout << "Wersja: TwoNote+ InvDev 0.1" << endl;
    break;

    default:
     cout << "Z³y wybór!" << endl;
    break;
    }//TO TA KLAMRA
    switch (wybortwo)
    {
    case '1':
     system ("cls");
     fstream notka;
     cout << "Wpisz nazwê pliku: " << endl; cin >> nazwapliku;
     notka.open("<<nazwapliku<<.txt", ios::out);
     cout << "Wpisz treϾ notatki:" << endl;
     cin >> trescnotki;
     notka<<trescnotki<<endl;
     notka.close();
     
    break;
    }
    
    return 0;
}

 

Pozdrawiam ! :D

 

Ps. Popracuj nad czytelnością kodu !!

komentarz 6 kwietnia 2016 przez draghan VIP (106,230 p.)

►Nie używaj polskich znaków bo krzaki są w konsoli.
►Zmieniłem ten "clear" na "cls" i jest juz ok

Są inne systemy niż Windows, które nie mają problemów z kodowaniem znaków i posiadają inny zestaw poleceń systemowych. ;)

komentarz 6 kwietnia 2016 przez TheFeniks Gaduła (4,690 p.)
Ok rozumiem.

Dzięki za uwage. :)
komentarz 7 kwietnia 2016 przez Proszek73 Obywatel (1,140 p.)

To prawda mam Linuxa i systemowa komenda to "clear"laugh

komentarz 7 kwietnia 2016 przez draghan VIP (106,230 p.)
No to teraz zadanie dla Ciebie: opracuj funkcję, czyszczącą ekran zarówno na Linuksie, jak i na Windowsie. :)
komentarz 7 kwietnia 2016 przez Proszek73 Obywatel (1,140 p.)

Dla mnie?!laugh

komentarz 7 kwietnia 2016 przez draghan VIP (106,230 p.)
Pewnie. :)
komentarz 10 kwietnia 2016 przez Proszek73 Obywatel (1,140 p.)

Później spróbujecheeky

0 głosów
odpowiedź 6 kwietnia 2016 przez Vodoo Dyskutant (9,270 p.)
Brakuje klamerki zamykającej pierwszego switch'a. Edit: 71 linijka - najprawdopodobniej zbedna klamerka
0 głosów
odpowiedź 6 kwietnia 2016 przez Dubgron Mądrala (5,620 p.)
Zmień w funkcji system z clear na cls. Powinno zadziałać. Pozdrawiam.
komentarz 7 kwietnia 2016 przez Proszek73 Obywatel (1,140 p.)

Mam Linuxasmiley

–1 głos
odpowiedź 6 kwietnia 2016 przez Ukis Gaduła (4,580 p.)
przywrócone 7 kwietnia 2016 przez Ukis
W case zmień '1' na 1 i '2' na 2. Bez apostrofów.
komentarz 6 kwietnia 2016 przez Vodoo Dyskutant (9,270 p.)
Zmienna wyboruser jest typu char, nie int.
komentarz 7 kwietnia 2016 przez Ukis Gaduła (4,580 p.)
Fakt, mój błąd, dzięki. ;)

Podobne pytania

0 głosów
1 odpowiedź 266 wizyt
pytanie zadane 25 kwietnia 2016 w C i C++ przez dal'sharum Nowicjusz (200 p.)
0 głosów
3 odpowiedzi 164 wizyt
pytanie zadane 8 listopada 2018 w C i C++ przez xxxasiap Nowicjusz (160 p.)
0 głosów
1 odpowiedź 168 wizyt
pytanie zadane 23 maja 2020 w C i C++ przez Nabuchadonozor Gaduła (3,120 p.)

92,563 zapytań

141,416 odpowiedzi

319,596 komentarzy

61,948 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...