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

Dwa pytania odnośnie c++, błąd w programie, funkcje

Object Storage Arubacloud
0 głosów
85 wizyt
pytanie zadane 16 stycznia 2018 w C i C++ przez Q7V Gaduła (4,250 p.)

Cześć, to pytanie będzie spore, zacznę od pierwszej kwestii. Rozbudowałem swój prostu programik w c++, kompilator zwraca błąd jump to case lebel, szczerze nie rozumiem co ma na myśli, żadna zmiana się raczej nie powtarza. Proszę nie bić za krzaczki zamiast polskich znaków. :P

Błąd wystepuję w case 4, bez niego wszystko działa, natomiast gdy dodam opcję default:{...}break; program też się wysypuję.

#include <cstdlib>
#include <iostream>
#include <cmath>
#include <iomanip>

using namespace std;

int main()
{

int a,b,c,i,j,k;
char liczba;
double delta, x0, x1, x2;
cout<<"Podaj liczbe: ";
cin>>liczba;
switch(liczba){
case '1':
    cout<<"Podaj A"<<endl;
    cin>>a;
    cout<<"Podaj B"<<endl;
    cin>>b;
    cout<<"Podaj C"<<endl;
    cin>>c;
    delta=b*b-4*a*c;
    if(delta<0){
    cout<<"Delta mniejsza ni� 0 - "<<delta<<endl;}
    else if(delta==0){
    x0=-b/2*a;
    cout<<"Delta r�wna 0 - x0="<<x0<<endl;}
    if(delta>0){
    x1=-b-sqrt(delta)/2*a;
    x2=-b+sqrt(delta)/2*a;
    cout<<"x1="<<x1<<" x2="<<x2<<endl;
    cout<<delta<<endl;
}
    break;
case '2':
     cout<<"Wpisz 1 aby zacz��: "<<endl;
     cin>>j;
     if(j==1){
     for(k=0;i>=j;k++){
     cout<<k+k+k+k+k+k+k*k<<endl; }
     }
     else{
     cout<<"b��d";
          }
     break;
case '3':
int q=247;
cout<<"q = "<<q<<endl;
cout<<"Konwersja system�w liczbowych:"<<endl;
cout<<"szesnatstkowy = "<<hex<<q<<endl;
cout<<"dziesi�tny = "<<dec<<q<<endl;
cout<<"szesnastkowy = "<<setfill('0')<<setw(6)<<hex<<q<<endl;
cout<<"�smekowy = "<<setfill('*')<<setw(10)<<oct<<q<<endl;
     break;
case '4':
double x=22.111111111, y=3.5555555555555, w, z;
cout<<"Podaj liczb� rzeczywist�: ";
cin>>w;
cout<<"\nx = "<<setw(10)<<x<<endl;
cout<<"\ny = "<<setfill('0')<<setw(12)<<y<<endl;
cout<<"\ny = "<<setprecision(8)<<setfill('0')<<setw(12)<<y<<endl;
cout<<"\nw = "<<setfill('*')<<setw(15)<<w<<endl;
cout<<"\nx + y + w = "<<setprecision(9)<<x+y+w<<endl;
cout<<"\nx * y = "<<setprecision(8)<<x*y<<endl;
     break;
          }

system("PAUSE");
return 0;

}

 

Drugie zagadnienie dotyczy samej teorii c++, za tydzień mam kartkówkę z funkcji poniższych. W tabelce brakuję mi paru pól, ale bardziej mnie dręczy pytanie... Można to jakoś przetłumaczyć na język polski? Zależy mi na nauce c++, sporo w nim grzebie, jednakże po prostu nie rozumiem poniższych definicji, a w sieci nie potrafię znaleźć prostego przełożenia.

Funkcja

Opis funkcji

Przykładowe zastosowanie funkcji

Znaczenie

Int get(void)

Pobiera następny znak ze strumienia

Char a;

A = cin.get()

Wczytywanie z klawiatury wartości zmiennej a, równoważne: cin>>a;

Get(char &z)

Pobiera ze strumienia znak i przypisuje go zmiennej z.

Char a;

Cin.get(a);

 

Wczytywanie z klawiatury wartości zmiennej a, równoważne: cin>>a

 

Cin.get();

 

Wymuszenie naciśnięcia klawisza Enter;

Get(char *tekst, int dl, char k=’\n’)

Odczytuję znaki ze strumienia do zmiennej tekst do momentu osiągnięcia znaku k ( znak ten nie jest odczytywany ), odczytania dl-1 znaków lub odczytania wszystkich znaków

Char s[50];

Cin.get(s.sizeof(s)),’a);

Wczytywanie z klawiatury do zmiennej s znaków, aż do pojawienia się znaku “a”, odczytyania 49 znaków lub odczytania wszystkich znaków.

Cin.get(s,24);

Wczytywanie z klawiatury do zmiennej s znaków aż do pojawienia się znaku specjalnego ‘\n’ ( domyślnie )

Getline(char *tekst, int dl, char k=’\n’)

Odczytuję znaki ze strumienia ( również spacje ) do zmiennej tekst do momentu osiągnięcia znaku k * znak ten jest pobierany ze strumienia, ale nie jest dopisywany do zmiennej tekst), odczytania dl-1 znaków lub odczytania wszystkich znaków.

Char s[50];

Cin.getline(s,40,’c’);

Wczytywanie z klawiatury zmiennej s znaków, aż do pojawienia się znaku “c” lub odzytania 39 znaków.

Cin.getline(s, sizeof(s))

Wczytywanie z klawiatury do zmiennej s wszystkich znaków ( maksymalna długość łańcucha wynosi 256 znaków )

Cin.getline(s,50)

Wczytywanie z klawiatury do zmiennej s znaków, aż do odczytania 49 znaków

String s1; getline(cin, s1);

Wczytywanie z klawiatury do zmiennej s1 wszystkich znaków ( maksymalan długośc łauńcucha wynosi 256 znaków)

Ignore()

 

 

 

 

Powoduję pominięcie znaków

Cin.ignore();

Znaków znajdujące się w strumieniu wejściowym zostają zignorowane.

 

 

Put(char &z)

Wstawia do strumienia znak z

Char a=’p’;

Cout.put(a);

Wypisanie na ekranie wartości zmiennej a, równoważne cout<<a;

komentarz 17 stycznia 2018 przez j23 Mędrzec (194,920 p.)

Cin.get();

 

Wymuszenie naciśnięcia klawisza Enter;

Nie, nie takie jest zastosowanie. Metoda get() czyta znak (obojętnie jaki) ze strumienia. I nie Cin, tylko cin.

1 odpowiedź

0 głosów
odpowiedź 16 stycznia 2018 przez tangarr Mędrzec (154,860 p.)

Nie możesz wykonać jumpa do '4' ponieważ przeskakujesz deklarację zmiennej.
Wystarczy "opakować" cały case '3' klamrami.

case '3': {
    int q=247;
    cout<<"q = "<<q<<endl;
    cout<<"Konwersja system�w liczbowych:"<<endl;
    cout<<"szesnatstkowy = "<<hex<<q<<endl;
    cout<<"dziesi�tny = "<<dec<<q<<endl;
    cout<<"szesnastkowy = "<<setfill('0')<<setw(6)<<hex<<q<<endl;
    cout<<"�smekowy = "<<setfill('*')<<setw(10)<<oct<<q<<endl;
} break;

PS. Nic nie widać na tej tabelce.

komentarz 16 stycznia 2018 przez Q7V Gaduła (4,250 p.)
ooo dzięki wielkie :D Tabelkę edytowałem bo było mało widoczna, już jest widoczna. :>

Podobne pytania

0 głosów
2 odpowiedzi 474 wizyt
pytanie zadane 4 marca 2016 w C i C++ przez falauthy Stary wyjadacz (11,550 p.)
0 głosów
0 odpowiedzi 73 wizyt
pytanie zadane 16 listopada 2019 w Sprzęt komputerowy przez Cixo Gaduła (4,070 p.)
0 głosów
1 odpowiedź 113 wizyt
pytanie zadane 9 kwietnia 2019 w PHP przez Luna Cognita Dyskutant (8,130 p.)

92,626 zapytań

141,486 odpowiedzi

319,848 komentarzy

62,009 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!

...