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

Struktura i funkcja w C

VPS Starter Arubacloud
0 głosów
659 wizyt
pytanie zadane 17 stycznia 2019 w C i C++ przez Kaper99 Użytkownik (660 p.)

Witam! Proszę o pomoc w wytłumaczeniu polecenia, bo kompletnie nie rozumiem.
Wygląda ono tak  : 

Strukture zdefiniowałem bez problemu natomiast 
Moje pytanie brzmi, o co chodzi z tym "struct daneos wczytaj(); " Mam napisać funkcję typu " struct daneos"  do wczytywania danych do struktury ?  Mógłby ktoś naprowadzić jak to ma wyglądać, ponieważ kompletnie nie wiem jak się za to zabrać.  Z góry dziękuję.

1 odpowiedź

0 głosów
odpowiedź 17 stycznia 2019 przez criss Mędrzec (172,590 p.)
wybrane 20 stycznia 2019 przez Kaper99
 
Najlepsza

Masz stworzyć w funkcji wczytaj() lokalny obiekt takiej struktury i go wypełnić (pewnie chodzi o scanf) a następnie zwrócić ten obiekt. Coś w tym stylu:

struct daneos wczytaj()
{
   struct daneos d;
   // wypelnianie
   return d;
}

W przypadku wczytaj2 to samo, ale obiekt do wypełnienia masz podany z zewnątrz. Zauważ, że przy implementacji wczytaj() możesz wykorzystać wczytaj2(), żeby nie pisać tego samego kodu wypełniania wielokrotnie.

komentarz 17 stycznia 2019 przez Kaper99 Użytkownik (660 p.)

Okej, zrobiłem to w ten sposób. Pierwsza część zadania chyba jest dobrze ( ale pozostawiam do oceny )

	struct daneos
	{
		char imie[20], nazwisko[20];
		int wiek;
	};

struct daneos wczytaj();
void wyswietl(struct daneos student);

void wczytaj2(struct daneos *wsk);
void wyswietl2(struct daneos *wsk);
int main(int argc, char *argv[]) {

	puts("Bez wskaznikow");
	struct daneos student;
	student=wczytaj();
	wyswietl(student);
	
	puts("Ze wskaznikiem");
	/*student=wczytaj2()
	struct daneos *wsk=&student;
	wyswietl2( struct daneos student );       // Tutaj mam błąd, nie wiem w jaki sposób zabrać się za 
	                                           wczytywanie i wyswietlanie za pomocą wskaźników.*/

	
	return 0;
}
 
 
struct daneos wczytaj()
{	struct daneos student1;
	
	printf("Podaj imie\n");
	scanf("%s",student1.imie);
	printf("Podaj nazwisko\n");
	scanf("%s",student1.nazwisko);
	printf("Podaj wiek\n");
	scanf("%d",&student1.wiek);
	return student1;
	
}

void wyswietl(struct daneos student)
{
	printf(" %s %s %d\n",student.imie,student.nazwisko,student.wiek);
}

void wczytaj2(struct daneos *wsk)
{
	
}

void wyswietl2(struct daneos *wsk)
{
	printf("%s %s %d",wsk->imie,wsk->nazwisko,wsk->wiek);
}

Natomiast mam problem z drugą częścią zadania - użyciem wskaźników do tej struktury, próbowałem to zrobić tak jak jest w kodzie, ale kompletnie mi to nie wychodzi. 
Funkcja wczytaj2 oraz wyswietl2 chce ode mnie argument, ale nie przyjmuje ani *wsk ani student. 
Co należy podać tym funkcjom oraz jak powinno wyglądać ich ciało ? 

komentarz 17 stycznia 2019 przez criss Mędrzec (172,590 p.)

Moim zdaniem okej. Co do pytania:

struct student s;
wczytaj2(&s);
wyswietl2(&s);
komentarz 20 stycznia 2019 przez Kaper99 Użytkownik (660 p.)
Dziękuję bardzo !

Podobne pytania

0 głosów
2 odpowiedzi 568 wizyt
pytanie zadane 30 marca 2017 w C i C++ przez Programeł Gaduła (3,500 p.)
0 głosów
1 odpowiedź 1,557 wizyt
pytanie zadane 9 czerwca 2018 w C i C++ przez WhizzKid Początkujący (400 p.)
0 głosów
1 odpowiedź 415 wizyt
pytanie zadane 2 lipca 2017 w C i C++ przez kakaPL Nowicjusz (160 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...