Wpis z mikrobloga

Czy moglibyście powiedzieć mi co jest nie tak z tym kodem? Dlaczego po wpisaniu średnicy program nie pozwala mi umieścić kolejnych danych (ba, usunięcie fragmentu ze średnicą i pozostawienie cinów z nazwą i wagą skutkuje poprawnym programem. Dlaczego?)

#include

#include

const int Arrsize = 30;

using namespace std;

int main() {

struct pizza {

char name[Arrsize];

double diameter;

double weight;

};

pizza * new_dish = new pizza;

```cout << "Pizza Composing:\n-------------------\n";cout << "Diameter: ";cin >> new_dish->diameter;cout << "Name: ";cin.get(new_dish->name, Arrsize);cout << "Weight: ";cin >> new_dish->weight;cout << "-------------------\n";cout << new_dish->name << "\n" << new_dish->diameter << "cm " << new_dish->weight << "g.\n\n";delete new_dish;system("pause");return 0;```

}

#programowanie #cpp
  • 12
  • Odpowiedz
@Tobruk: Zamień po prostu linijkę:

cin.get(newdish->name, Arrsize);


na cin >> newdish->name;

Nie jestem pewien czy jest to do końca poprawne, "ale działa".
  • Odpowiedz
ok, problem z cin.get() to to, w bufforze zostaje ci "\n" (po potwierdzeniu średnicy enterem) i cin.get() to pobiera, jak rozumiem ignore pozwala zigonorować :P ten znak końca lini.
  • Odpowiedz