• 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++

0 głosów
49 wizyt
pytanie zadane 4 stycznia w C i C++ przez Arkadiusz Grządziel Nowicjusz (120 p.)
zamknięte 4 stycznia 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 przez Wiciorny Ekspert (219,270 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 przez Arkadiusz Grządziel Nowicjusz (120 p.)
To jak to powinno być poprawnie?
2
komentarz 4 stycznia przez Oscar Pasjonat (24,050 p.)
Definicja zmiennej m - ma być tablicą a nie zainicjowanym znakiem.

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

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

1
komentarz 4 stycznia 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ź 391 wizyt
pytanie zadane 22 stycznia 2017 w C i C++ przez intensick Początkujący (440 p.)
0 głosów
1 odpowiedź 165 wizyt
pytanie zadane 28 lutego 2016 w C i C++ przez RedMartin Użytkownik (640 p.)
0 głosów
1 odpowiedź 141 wizyt
pytanie zadane 2 listopada 2021 w C i C++ przez anteq69 Nowicjusz (240 p.)

87,976 zapytań

136,557 odpowiedzi

304,510 komentarzy

58,337 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...