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

question-closed Stworzenie funkcji do programu

Object Storage Arubacloud
–1 głos
103 wizyt
pytanie zadane 9 lutego 2018 w C i C++ przez Sic Dyskutant (8,510 p.)
zamknięte 13 lutego 2018 przez Sic

Program działa jednak nie tak jak powinien:

getinfo() ma za zadanie pobierać i zapisywać dane. Wprowadzenie danych kończy się, gdy tablica jest pełna. Funkcja zwraca liczbę studentów wpisanych do tablicy.

display1() pobiera parametr struktury student i pokazuje jej zawartość.

display2() pobiera jako parametr adres struktury student i pokazuje jej zawartość tej struktury.

display3() pobiera jako parametr adres pierwszego elementu tablicy ze strukturami student oraz liczbę elementów tablicy, po czym wyświetla zawartość wskazanych struktur

 

Oto kod:

#include <iostream>

const int SLEN = 30;
struct student
{
	char fullname[SLEN];
	char hobby[SLEN];
	int ooplevel;
};

int getinfo (student pa[], int n);
void display1 (student st);
void display2 (const student *ps);
void display3 (const student pa[], int n);

int main()
{
	std::cout << "Podaj wielkosc grupy: ";
	int class_size;
	std::cin >> class_size;
	while(std::cin.get() != '\n')
		continue;
student * ptr_stu = new student[class_size];
	int entered = getinfo(ptr_stu, class_size);
	
	for(int i=0; i < entered; i++)
	{
		display1(ptr_stu[i]);
		display2(&ptr_stu[i]);			
	}

	display3(ptr_stu, entered);
	delete [] ptr_stu;
	std::cout << "\n\nGotowe\n";

	return 0;
}

int getinfo (student pa[], int n)
{
	for(int i=0; i < n; i++)
	{
		std::cout << "Podaj nazwisko studenta: ";
		std::cin.get(pa[i].fullname, SLEN);
/*if(!(std::cin.get(pa[i].fullname, SLEN)))
		{
			std::cout << "Blad! Ponow probe: ";
			std::cin.get(pa[i].fullname, SLEN);
		}
		else
		{*/
			std::cout << "Podaj hobby student: ";
			std::cin.get(pa[i].hobby, SLEN);
		/*}
		
		if(!(std::cin.get(pa[i].hobby, SLEN)))
		{
			std::cout << "Blad! Ponow probe: ";
			std::cin.get(pa[i].hobby, SLEN);
		}	
		else
		{*/
			std::cout << "Rok studiow: ";
			std::cin >> pa[i].ooplevel;
		//}	
	}
	std::cout << std::endl;
	return n;
}

void display1 (student st)
{
	std::cout << "\tWartosc\n" << st.fullname[SLEN] << "\n" << st.hobby[SLEN
] << "\n"  << st.ooplevel << "\n";
}

void display2 (const student * ps)
{	
	std::cout << "\tAdresy\n" << &ps->fullname[SLEN] << "\n" << &ps->hobby[S
LEN] << "\n" << &ps->ooplevel << "\n\n"; 
}

void display3 (const student pa[], int n)
{
	std::cout << "Adresy pierwszych elementow struktury\n" << &pa[0].fullnam
e[SLEN] << "\n" << &pa[0].hobby[SLEN] << "\n" << &pa[0].ooplevel;

}

Problem jej w tym, że:

1. Nie można wpisać więcej niż jedną literę, chociaż jest std::cin.get().

2. Nie wyświetla dwóch pierwszy wartości i adresów.

komentarz zamknięcia: Inne
komentarz 9 lutego 2018 przez Piotr Batko Stary wyjadacz (13,190 p.)
Zapomniałeś napisać co nie działa.

Podobne pytania

0 głosów
1 odpowiedź 110 wizyt
–1 głos
0 odpowiedzi 151 wizyt
0 głosów
1 odpowiedź 242 wizyt
pytanie zadane 1 marca w Sprawy forum przez Panelinio Gaduła (4,360 p.)

92,573 zapytań

141,423 odpowiedzi

319,648 komentarzy

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

...