cin.getline() w strukturze

0

#include <iostream>
#include <cstring>
#include <conio.h>
using namespace std;
struct szymon
{
char firma[50];
double sred;
double waga;
};
int main()
{
szymon * kolano = new szymon;
cout << "Podaj nazwe firmy produkujacej pizze: ";
cin.getline(kolano->firma, 50);
cout << "Podaj srednice pizzy w cm: ";
cin >> (*kolano).sred;
cout << "Podaj wage pizzy w kg: ";
cin >> kolano->waga;
cout << "Informacje o pizzy:" << "\n";
cout << "Nazwa: " << kolano->firma << "\n";
cout << "Srednica: " << kolano->sred << "\n";
cout << "Waga: " << kolano->waga << "\n";
double pot = kolano->sred * kolano->sred * 3.14 * 0.5 * 0.5;
cout << "Powierzchnia w cm kwadratowych: " << pot;
delete kolano;

szymon * me = new szymon;
cout << "Podaj nazwe:" << "\n";
cin.getline(me->firma, 50);
delete me;
getch();
return 0;

}

i tutaj mam problem ponieważ jak mam w szymon *kolano = new szymon mam cin.getline(kolano->firma, 50) i tu mam działa a w szymon * me = new szymon; cin.getline(me->firma, 50); nie działa

0

Pytanie za sto punktów - po co Ci dynamiczna alokacja tego elementu?

0

... drugi zapis nie ma sensu bo wczytujesz dane i zanim cokolwiek zrobisz usuwasz obiekt

0

ponieważ ucze się programować i właśnie zadanie z książki takie mam

0

ogólnie również w zwykłych strukturach mam z tym problem

0

Znalazłeś tą książkę w "Dziale ksiąg zakazanych"?

0

nie

0

wstaw kod w znaczniki

0

Dlaczego uczysz się C++ z książki o Java?

 #include <string>

using namespace std;
struct szymon
{
	string firma;
	double sred;
	double waga;
};
int main()
{
	szymon kolano;
	cout << "Podaj nazwe firmy produkujacej pizze: ";
	getline(cin, kolano.firma);

po co tworzyć problemy tam gdzie ich nie?

Drugi getline Ci nie działa, bo nie czyścisz strumienia, po pobraniu pierwszych danych, czyli w cin cały czas jest wpisana pierwsza wartość. Poszukaj w internecie

std::cin.clear();
	std::cin.sync(); 

to powinno pomóc :)

0

dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1