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

Problem z definicją funkcji.

Cloud VPS
0 głosów
733 wizyt
pytanie zadane 23 stycznia 2019 w C i C++ przez Hailon Początkujący (310 p.)

Witam!

Mam problem z definicją funkcji setgolf. Mianowicie, kiedy próbuje ustawić, aby funkcja w strukturze golf ustawiała dane nazwisko i handicap na podstawie wywołanych argumentów, kompilator daje komunikat o "incompatible types in assignment of 'const char*' to 'char [40]'".

Mój kod:

a) plik nagłówkowy

const int Len = 40;
struct golf
{
    char fullname[Len];
    int handicap;
};
void setgolf(golf & g, const char * name, int hc);
void setgolf(golf & g);
void handicap(golf & g, int hc);
void showgolf(const golf & g);

b) definicje funkcji

#include<iostream>
#include "golf.h"
void setgolf(golf & g, const char * name, int hc)
{
    g.fullname = name;
    g.handicap = hc;
}


 

1 odpowiedź

0 głosów
odpowiedź 23 stycznia 2019 przez RafalS VIP (122,820 p.)

Próbujesz zrobić coś takiego:

char fullname[40];
fullname = "abcde";

Co oczywiście nie zadziała, bo nie można przypisać wskaźnika do tablicy, ale można przypisać tablice to wskaźnika. Polecam wykorzystać ten drugi fakt.

komentarz 23 stycznia 2019 przez Hailon Początkujący (310 p.)
Ogromnie dzieki za poswiecony czas, straszne dzisiaj robie bledy ;)
komentarz 23 stycznia 2019 przez Hailon Początkujący (310 p.)

@j23, Jeszcze jedno szybkie pytanie, jak zrobić żeby wczytało mi wyrazy po spacji np. Jan Kowalski w tej funkcji:

void setgolf(golf & g)
{
    cout << "Podaj imie: ";
    cin.getline(g.fullname, Len);
    cout << "Podaj handicap: ";
    cin >> g.handicap;
}

 

 

1
komentarz 23 stycznia 2019 przez Hailon Początkujący (310 p.)
Już wiem, przypomniałem sobie, jeszcze raz dzięki ;)
komentarz 29 marca 2019 przez dziubi21 Początkujący (310 p.)

A dlaczego wyskakuje mi błąd: "golf.cxx:8:4: error: ‘strcpy’ was not declared in this scope"?

#include <iostream>
#include "golf.h"
#include <string>


void setgolf(golf & g, const std::string * name, int hc)
{		
		 strcpy(g.fullname, name);
		g.handicap = hc;		
}

 

komentarz 29 marca 2019 przez dziubi21 Początkujący (310 p.)
edycja 29 marca 2019 przez dziubi21
note: suggested alternative: 'strtoq'

Podobne pytania

0 głosów
1 odpowiedź 308 wizyt
pytanie zadane 23 marca 2019 w C i C++ przez Hailon Początkujący (310 p.)
0 głosów
1 odpowiedź 174 wizyt
pytanie zadane 23 marca 2019 w C i C++ przez Hailon Początkujący (310 p.)
0 głosów
1 odpowiedź 655 wizyt
pytanie zadane 1 marca 2019 w C i C++ przez Hailon Początkujący (310 p.)

93,487 zapytań

142,420 odpowiedzi

322,772 komentarzy

62,903 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

Kursy INF.02 i INF.03
...