У меня возникла,странная проблема при создании структуры.
struct Znak
{
char surnamename[20];
char znak[20];
char birthday[30];
};
В строчке char birthday[30]; если стоит char то програма комплириуется нормально, а если ставлю int то компилятор говорит что я ̶д̶у̶р̶а̶к̶ , и пытается считать ето как char. )комплирировал в repl.it
#include <iostream>
#include<cstring>
using namespace std;
struct Znak
{
char surnamename[20];
char znak[20];
char birthday[30];
};
int main()
{
Znak base[100];
int n;
cin>>n;
int i,j;
for(i=0; i<n;i++) {
cout<<"\nSurname and Name: ";
cin>>base[i].surnamename;
cout<<"\nZnak: ";
cin>>base[i].znak;
cout<<"\nBirthday: ";
cin>>base[i].birthday;
}
for (i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if (strcmp(base[j].surnamename,base[i].surnamename)<0)
swap(base[j].surnamename,base[i].surnamename);
}
}
for(i=0; i<n;i++) {
cout<<"Surname: "<<base[i].surnamename<<" Znak: "<<base[i].znak<<" Birthday: "<<base[i].birthday<<endl;
}
system("Pause");
return 0;
}
Все просто. Ваш birthday, когда он char, понимается как char*, а оператор ostream>> для char* - строки в стиле C - есть.
А вот для int* - нет. Как вы хотите считывать массив целых чисел одним оператором? :)
Вот и все...
Сборка персонального компьютера от Artline: умный выбор для современных пользователей