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

Pole deltoidu

VPS Starter Arubacloud
0 głosów
624 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ź 874 wizyt
pytanie zadane 22 września 2018 w C i C++ przez maciokeks Nowicjusz (220 p.)
–1 głos
0 odpowiedzi 188 wizyt
pytanie zadane 16 września 2022 w C i C++ przez Damie2K17 Nowicjusz (140 p.)
0 głosów
1 odpowiedź 383 wizyt
pytanie zadane 27 maja 2022 w C i C++ przez rurku Nowicjusz (120 p.)

92,452 zapytań

141,262 odpowiedzi

319,085 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!

...