cannot bind rvalue oraz invalid conversion from char*

0

Cześć, w ramach nauki napisałem program, który liczy notę końcową w Skokach narciarskich na starych zasadach(bez wiatru) na jednej ze skoczni. Wyrzuca mi takie dwa błędy i nie bardzo wiem co jest nie tak. za ewentualną pomoc dzięki.

#include <iostream>
using namespace std;
void showmenu();
void info();
void rekordy();
char symulator(double);
int main() // multiple definition of main
{
    void showmenu();
    double nota = 0;
    symulator(nota);
    int choice;
    cin >> choice;
    while (choice != 4)
    {
        switch (choice)
        {
            case 1:
                symulator(nota);
                break;
            case 2:
                info();
                break;
            case 3:
                rekordy();
                break;
            default:
                cout << "Nie ma takiej opcji\n";
        }
        void showmenu();
        cin >> choice;
    }
    cout << " Bye Bye\n";
    return 0;
}
void menu()
{
    cout << "Wybierz 1, 2, 3 lub 4. \n";
    cout << "1: Kalkulator noty za skok\t    2: Informacje na temat skoczni\n";
    cout << "3: Rekordy skoczni\t            4. Koniec\n";
}
void info()
{
    cout << "Skocznia Hinterzarten\n";
    cout << "Wielkość skoczni: \tHS 108\n";
    cout << "Punkt K: \t95 m";
    cout << "Wysokość wieży: 	28 m\n";
    cout << "Wysokość wieży: 	28 m\n";
    cout << "Długość najazdu: 	83,25 m\n";
    cout << "Nachylenie najazdu: 	35,18°\n";
    cout << "Długość progu: 	6,25 m\n";
    cout << "Nachylenie progu: 	11,2°\n";
    cout << "Wysokość progu: 	2,58 m\n";
    cout << "Nachylenie zeskoku: 	35°\n";
    cout << "Rok budowy: 	1924\n";
    cout << "Przebudowy: 	1935, 1949, 1964, 1980-82, 1999\n";
}
void rekordy()
{
    cout << " 111,0 m (Tobias Bogner GER, 27.02.2005, FIS)\n";
    cout << " 111,0 m (Lars Bystøl NOR, 10.02.2008, COC)\n";
}
char symulator(double)
{
    double nota = 0;
    char name_surname[40];
    cout << "Proszę podać imię oraz nazwisko skoczka\n";
    cin.getline(name_surname, 40);
    cout << "Proszę podać numer belki, z której został wykonany skok.\n";
    cout << "(Minimum 0, maximum 20)";
    int belka;
    while (!(cin >> belka || belka > 20))
    {
        cin.clear();
        while (cin.get() != '\n')
            continue;
        cout << "Tylko liczby z przedziału 0- 20! Proszę podać jeszcze raz.\n";
    }
    double odleglosc;
    cout << "Proszę podać odległość wyrażoną w metrach z dokładnością do 0.5m\n";
    while (!(cin >> odleglosc))
    {
        cin.clear();
        while (cin.get() != '\n')
            continue;
        cout << "Tylko liczby! Spróbuj ponownie\n";
    }
    double noty[4];
    cout << "Proszę podać trzy spośród pięciu not sędziowskich, jakie uzyskał zawodnik. Należy "
            "odrzucić najmniejszą oraz największą wartość. Przedział 0-20, przeskok co 0.5\n";
    cout << "(np. 16.0, 18.5 etc.\n";
    int i = 0;
    double sumanotzastyl;
    if (cin >> noty[i] && noty[i] >= 20 && i < 3)
    {
        ++i;
        sumanotzastyl += sumanotzastyl + noty[i];
    } // Nie bardzo wiem, jak odjąć największą i najmniejszą wartość
    else
    {
        cin.clear();
        while (cin.get() != '\n')
            ;
        cout << "Proszę podać jeszcze raz\n";
    }

    if (odleglosc < 95 && odleglosc > 1)
    {
        double roznicametrow1 = 95 - odleglosc;
        nota = 60 + (roznicametrow1 * 2) + (64 - (belka / 2) * 6.4) + sumanotzastyl;
    }
    else if (odleglosc == 95)
    {
        nota = 60 + (64 - (belka / 2) * 6.4) + sumanotzastyl;
    }
    else if (odleglosc > 95)
    {
        double roznicametrow2 = odleglosc - 95;
        nota = 60 + (roznicametrow2 * 2) + (64 - (belka / 2) * 6.4) + sumanotzastyl;
    }
    else
        cout << "Coś poszło nie tak./n";
    return nota;
}

2

Pomyliłeś get z getline. Poza tym, użyj std::getline i std::string.

0

Sorry mój błąd. miałem dołączony inny plik, main.ccp. Dzięki

0

Może masz jakiś inny plik dołączony do projektu? Jeśli nie: pokaż kod, bo w obecnym nie widzę powodu aby tak się działo.

1 użytkowników online, w tym zalogowanych: 0, gości: 1