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

Problem z definicją funkcji.

Object Storage Arubacloud
0 głosów
347 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ź 186 wizyt
pytanie zadane 23 marca 2019 w C i C++ przez Hailon Początkujący (310 p.)
0 głosów
1 odpowiedź 140 wizyt
pytanie zadane 23 marca 2019 w C i C++ przez Hailon Początkujący (310 p.)
0 głosów
1 odpowiedź 394 wizyt
pytanie zadane 1 marca 2019 w C i C++ przez Hailon Początkujący (310 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

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

...