Почему выводит в таком виде?

247
26 декабря 2017, 17:28

#include <string>
#include <iostream>;
using namespace std;
struct NOTE
{
    string name;
    int TELE;
    int BDAY[3];
};
int main()
{
    const int size = 3;
    NOTE BLOCKNOTE[size];
    int i, j;
    int n = 0;
    for (i = 0; i < size; i++)
    {
        cout << "Vvedite name" << endl;
        cin >> BLOCKNOTE[n].name;
        cout << "Vvedite tele" << endl;
        cin >> BLOCKNOTE[n].TELE;
        cout << "Bday" << endl;
        for (int i = 0; i < 3; i++)
        cin >> BLOCKNOTE[n].BDAY[3];
        cout << "Name " << BLOCKNOTE[n].name << endl;
        cout << "TELE " << BLOCKNOTE[n].TELE << endl;
        cout << "Bday" << BLOCKNOTE[n].BDAY << endl;    
    };
    system("pause");
    return 0;
};
Answer 1

Потому что это массив int BDAY[3];, который низводится до простого указателя на int, каковой указатель и выводится - по умолчанию как шестнадцатеричное значение.

Вы должны выводить как

cout << BLOCKNOTE[n].BDAY[0] << "." << BLOCKNOTE[n].BDAY[1] << "." << BLOCKNOTE[n].BDAY[2];

А вводить нужно все три числа в разные места: не

for (int i = 0; i < 3; i++)
    cin >> BLOCKNOTE[n].BDAY[3]

(еще и с выходом за границу массива!), а

for (int i = 0; i < 3; i++)
    cin >> BLOCKNOTE[n].BDAY[i]

Если вы, конечно, об этом выводе, а не, например, имени - в вопросе вы же не указали, что именно вас беспокоит...

Вот исправленный код: https://ideone.com/YrtPBD

READ ALSO
Ошибка при qsort по вектору структур

Ошибка при qsort по вектору структур

Добрый деньИмеется структура:

269
OSM отображение карты C++

OSM отображение карты C++

Каким образом можно отобразить OpenStreetMap карту средствами C++/Qt (БЕЗ QML)?

204
Реализация push_back для вектора

Реализация push_back для вектора

Мне нужно написать реализацию push_back для вектораНо я не знаю как правильно

239