Ai biết chỉ giáo với koy ..!!

Thảo luận trong 'C/C++' bắt đầu bởi NoName_DN, 29 Tháng năm 2010.

  1. Offline

    NoName_DN

    • Thành Viên Mới

    Số bài viết:
    96
    Đã được thích:
    10
    Điểm thành tích:
    0
    #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:
  2. Offline

    jinyotino

    • Friends

    Số bài viết:
    569
    Đã được thích:
    211
    Điểm thành tích:
    140


    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
  3. Offline

    NoName_DN

    • Thành Viên Mới

    Số bài viết:
    96
    Đã được thích:
    10
    Điểm thành tích:
    0
    oki -- cin.getline() cũng hôk được, nó không cho nhập mới ghê, haha
    có code thì share ik
  4. Offline

    jinyotino

    • Friends

    Số bài viết:
    569
    Đã được thích:
    211
    Điểm thành tích:
    140
    mai mình share cho bạn. Tại bạn chưa hiểu cin.getline() thôi. Chúc ngày vui vẻ
  5. Offline

    jinyotino

    • Friends

    Số bài viết:
    569
    Đã được thích:
    211
    Điểm thành tích:
    140
    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);
    }

Chia sẻ trang này

Advertising: Linux system admin | nukeviet | nukeviet 4 | Upload ảnh miễn phí