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

question-closed Błąd przy kompilacji z gets() c++

Object Storage Arubacloud
0 głosów
262 wizyt
pytanie zadane 4 stycznia 2022 w C i C++ przez Arkadiusz Grządziel Nowicjusz (120 p.)
zamknięte 4 stycznia 2022 przez Arkadiusz Grządziel

Mój problem polega na tym iż nie wiem co jest spowodowane że wyskakuje błąd w programie z funkcją gets() w 97 wierszu "error: invalid conversion from 'char' to 'char*' [-fpermissive]|". Podczas zajęć na uczelni tego typu program działał lecz kiedy napisałem kod w domu to pokazuje błąd. Proszę o pomoc i ewentualne objaśnienie co robię źle.

#include <iostream>
#include <string.h>
#include <conio.h>
#include <windows.h>
#include <stdio.h>
#define N 30

using namespace std;

class Auto
{
    protected:

    char marka[N];
    string model;
    int rocznik;
    int przebieg;
    float silnik;
    public:

        void dodaj(char *mar, string mod, int rok, int prz, float sil);

    Auto();


};

Auto::Auto()
    {
        strcpy(marka," ");
        model = "";
        rocznik = 0;
        przebieg = 0;
        silnik = 0;
    }

    void Auto::dodaj(char *mar, string mod, int rok, int prz, float sil)
    {
        strcpy(marka, mar);
        model=mod;
        rocznik=rok;
        przebieg=prz;
        silnik=sil;
    }

class BazaAuto:public Auto
{
protected:
    Auto *tab;
    int rozmiar;
    int licznosc;
private:
    int i;
public:

    BazaAuto(int roz);
    void dodajAuto(char *mar, string mod, int rok, int prz, float sil);




};

    BazaAuto::BazaAuto(int roz)
    {
        this -> rozmiar=roz;
        tab = new Auto[rozmiar];
        for (i=0; rozmiar>licznosc; i++)
            tab[i];
        licznosc=0;
    }

    void BazaAuto::dodajAuto(char *mar, string mod, int rok, int prz, float sil)
    {
        if(licznosc<rozmiar)
            tab[licznosc].dodaj(mar, mod, rok, prz, sil);
        licznosc++;
    }




int main()
{
    char m(N);
    int rozmiar;
    int licznosc;

    string mod;
    int rok, prz, sil;

    cout<<"Ile elementow: ";
    cin>>rozmiar;
    cin.ignore();
    BazaAuto Baza(rozmiar);

    cout<<"marka: "; gets(m);
    cout<<"Model: "; cin>>mod;
    cout<<"Rocznik: "; cin>>rok;
    cout<<"Przebieg: "; cin>>prz;
    cout<<"Silnik: "; cin>>sil;
    cin.ignore();
    Baza.dodajAuto(m,mod,rok,prz,sil);



    return 0;
}

 

komentarz zamknięcia: Problem rozwiązany
1
komentarz 4 stycznia 2022 przez Wiciorny Ekspert (269,590 p.)
a co mówi błąd, bo wyraźnie masz napisane - > konwersja jest niepoprawna z typów char na wzkaźnikowy
komentarz 4 stycznia 2022 przez Arkadiusz Grządziel Nowicjusz (120 p.)
To jak to powinno być poprawnie?
2
komentarz 4 stycznia 2022 przez Oscar Nałogowiec (29,290 p.)
Definicja zmiennej m - ma być tablicą a nie zainicjowanym znakiem.

W jakim celu klasa BazaAuto dziedziczy z Auto?
1
komentarz 4 stycznia 2022 przez Wiciorny Ekspert (269,590 p.)
 char m(N);

ta linia jest niepoprawnie, powinna być tablica jak napisał Oscar. 

1
komentarz 4 stycznia 2022 przez Arkadiusz Grządziel Nowicjusz (120 p.)

Faktycznie dałem nie ten nawias co trzeba i nie zauważyłem tego indecision trochę głupi błąd ale dziękuję bardzo za pomoc

Podobne pytania

0 głosów
1 odpowiedź 598 wizyt
pytanie zadane 22 stycznia 2017 w C i C++ przez intensick Początkujący (420 p.)
0 głosów
1 odpowiedź 276 wizyt
pytanie zadane 28 lutego 2016 w C i C++ przez RedMartin Użytkownik (640 p.)
0 głosów
1 odpowiedź 308 wizyt
pytanie zadane 2 listopada 2021 w C i C++ przez anteq69 Początkujący (260 p.)

92,536 zapytań

141,377 odpowiedzi

319,452 komentarzy

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

...