#include<iostream> #include<cmath> #include<string> using namespace std; void main() { int n,i; struct ngaythang { unsigned int ngay; unsigned int thang; unsigned int nam; }; struct sinhvien { char hoten[50]; struct ngaythang tuoi; char que[50]; }; sinhvien p[1000]; cout<<" so luong sinh vien can nhap : "; cin>>n; for(i=1;i<=n;i++) { cout<<" nhap thong tin cho sinh vien thu "<<i<<endl; cout<<" Ho Ten : "; cin>>(p.hoten); cout<<endl; cout<<" Tuoi : "; cin>>p.tuoi.ngay>>p.tuoi.thang>>p.tuoi.nam;cout<<endl; cout<<" Que Quan : "; cin>>(p.que); cout<<endl; } cout<<" STT \t Ho Va Ten \t \t Ngay Sinh \t \t Que Quan "<<endl; for(i=1;i<=n;i++) { cout<<" "<<i+1<<"\t"<<p.hoten<<"\t"<<p.tuoi.ngay<<"/"<<p.tuoi.thang<<"/"<<p.tuoi.nam<<"\t"<<p.que<<endl; } } ở trên là đoạn code để nhập thông tin sinh viên, màk sao chỗ : cout<<" nhap thong tin cho sinh vien thu "<<i<<endl; cout<<" Ho Ten : "; cin>>(p.hoten); cout<<endl; cout<<" Tuoi : "; cin>>p.tuoi.ngay>>p.tuoi.thang>>p.tuoi.nam;cout<<endl; cout<<" Que Quan : "; cin>>(p.que); lại không xài gets(p.hoten) được màk xài cin lại được , nếu xài cin thì không thể nhập ký tự có khoảng trống ( ko đẹp ) Ai pék chỉ koy. :congratulate:
Thực ra bài trên lưu chuỗi như thế là sai hết rồi. cin chỉ nhập đc 1 kí tự thôi, gets thì chính xác hơn nhưng kém ổn định, khuyên bạn nên dùng cin.getline(); Bài này ngày mai mình sẽ gởi lên lại
Giải lại nè PHP: #include <iostream.h> struct ngaythang { unsigned int ngay; unsigned int thang; unsigned int nam; }; struct sinhvien { char masv[10]; char hoten[50]; ngaythang ngaysinh; char que[50]; }sv[50]; void nhap(int n) { int i; for(i=1;i<=n;i++) { cin.ignore(); cout<<"\nSinh vien thu "<<i<<" : "<<endl; cout<<"Nhap vao masv : "; cin.getline(sv[i].masv,10); cout<<"Nhap vao ho ten : "; cin.getline(sv[i].hoten,50); cout<<"Nhap vao que quan : "; cin.getline(sv[i].que,50); cout<<"Nhap vao ngay thang nam sinh : "; cin>>sv[i].ngaysinh.ngay>>sv[i].ngaysinh.thang>>sv[i].ngaysinh.nam; } } void xuat(int n) { int i; sinhvien *p; p=sv; for(i=1;i<=n;i++) { cout<<"\nSinh vien thu "<<i<<" : "<<endl; cout<<"Masv : "<<sv[i].masv<<endl; cout<<"Ho ten : "<<p[i].hoten<<endl; cout<<"Ngay sinh : "<<(p+i)->ngaysinh.ngay<<"/"<<(p+i)->ngaysinh.thang<<"/"<<(p+i)->ngaysinh.nam<<endl; cout<<"Que quan : "<<(*(p+i)).que<<endl; } } void main() { int n; cout<<"Nhap vao so sinh vien : "; cin>>n; nhap(n); cout<<"\n\nDanh sach sinh vien vua nhap : "; xuat(n); }