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

Pole deltoidu

Object Storage Arubacloud
0 głosów
625 wizyt
pytanie zadane 23 września 2018 w C i C++ przez maciokeks Nowicjusz (220 p.)

Cześć, mam problem jak kompiluje program i podaje wymiary z przecinkiem to wyskakuje mi takie coś. Chicałbym aby też można było robić tutaj działania na przecinkach. Nie wiem jak temu zaradzić.

#include <iostream>

using namespace std;

double longer,shorter,score;

int main()
{
    cout<<"Hi, this is program to calculate a deltoid field"<< endl;
    cout<<"Give the length of the longer height:"<< endl;
    cin>>longer;
    cout<<"Give the length of the short height:"<<endl;
    cin>>shorter;
    if(longer==0 ||shorter==0)
    {
        cout<<"Bzzz something is wrong"<<endl;
        cout<<"Give the length of the longer height:"<<endl;
        cin>>longer;
        cout<<"Give the length of the short height:"<<endl;
        cin>>shorter;

        score = (longer*shorter)/2;
    cout<<"This is your score:"<<score<<endl;
    return 0;
    }
    score = (longer*shorter)/2;
    cout<<"This is your score:"<<score<<endl;
    return 0;
}

 

2 odpowiedzi

+1 głos
odpowiedź 23 września 2018 przez monika90 Pasjonat (22,940 p.)

W C++ używa się kropki dziesiętnej zamiast przecinka, czyli musisz wpisać:

12.2

A jeżeli naprawdę zależy ci na przecinku to da się to zrobić, na przykład:

#include <locale>
#include <iostream>

struct decimal_point : std::numpunct<char>
{
    char do_decimal_point() const override { return ','; }
};

int main()
{
    std::cin.imbue(std::locale(std::cin.getloc(), new decimal_point));
    std::cout.imbue(std::locale(std::cout.getloc(), new decimal_point));

    //i teraz możesz wpisywać 12,2
    double x;
    std::cin >> x;
    std::cout << x << '\n';
}

 

1
komentarz 23 września 2018 przez j23 Mędrzec (194,920 p.)
Nie prościej ustawić po prostu locale na polskie?
komentarz 23 września 2018 przez monika90 Pasjonat (22,940 p.)
A jak nie ma polskiego locale?
1
komentarz 23 września 2018 przez j23 Mędrzec (194,920 p.)
edycja 23 września 2018 przez j23

Jak nie ma, to wtedy definiowanie klasy ma sens, ale coś podejrzewam, że ma polskie locale (zakładam, że numery wklepuje z numerycznej).

 

Najlepiej będzie, jak po prostu ustawi locale systemowe:

std::locale loc("");
std::cin.imbue(loc);
std::cout.imbue(loc);

i wtedy, przy wpisywaniu z liczb z klawiatury numerycznej, będzie miał w zależności od ustawień lokalizacyjnych kropkę lub przecinek.

0 głosów
odpowiedź 23 września 2018 przez Hiskiel Pasjonat (22,830 p.)
1. Zabezpiecz się przed podaniem błędnych/pustych danych.

2. Co jeśli coś pójdzie nie tak więcej niż jeden raz?
komentarz 23 września 2018 przez maciokeks Nowicjusz (220 p.)
ok a jak to wpisać o nie mam pomysłu

Podobne pytania

0 głosów
1 odpowiedź 886 wizyt
pytanie zadane 22 września 2018 w C i C++ przez maciokeks Nowicjusz (220 p.)
–1 głos
0 odpowiedzi 189 wizyt
pytanie zadane 16 września 2022 w C i C++ przez Damie2K17 Nowicjusz (140 p.)
0 głosów
1 odpowiedź 424 wizyt
pytanie zadane 27 maja 2022 w C i C++ przez rurku Nowicjusz (120 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 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!

...