Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: [VC] tại sao hàm cin.getline này không dung đuọc

  1. #1
    Ngày gia nhập
    09 2006
    Bài viết
    20

    Mặc định [VC] tại sao hàm cin.getline này không dung đuọc

    các bạn giúp mình với. hàm cout<<"nhap ten";của mình hình như bị trôi rồi.không hiểu tại sao
    code của mình nè
    Code:
    // SX_kieudulieu_SV.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    #include "iostream.h"
    #include "string.h"
    class CSinhVien
    {
    	private:
    		char hoten[30];
    		int maso;
    	public:
    		void nhap();
    		void xuat();
    };
    void main()
    {
    	CSinhVien SV[100];
    	int i,n;
    
    	cout<<"nhap so luong sinh vien can nhap:";
    	cin>>n;
    	fflush(stdin);
    	for(i=0; i<n; i++)
    		SV[i].nhap();
    
    	for(i=0; i<n; i++)
    		SV[i].xuat();
    }
    
    void CSinhVien::nhap()
    {
    	cout<<"nhap ten:";
    	cin.getline(hoten,30);
    	cout<<"\n nhap ma so:";
    	cin>>maso;
    }
    void CSinhVien::xuat()
    {
    	cout<<"\nten:"<<hoten;
    	cout<<"\n ma so:"<<maso;
    }

  2. #2
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,749

    Có lẽ là bạn sai từ chỗ dẫn lớp: void CSinhVien::nhap() chứ không phải do cout đâu? Xem lại đi nha.
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  3. #3
    Ngày gia nhập
    10 2006
    Nơi ở
    Hà Nội
    Bài viết
    146

    ở đây không cần phải dùng hàm cin.getline()
    Chỉ cần:
    Code:
     cin>>hoten;
    Là được rồi, chương trình sẽ bình thường thôi.

  4. #4
    Ngày gia nhập
    07 2006
    Bài viết
    166

    Sao lại là char hoten[30]; nhỉ :-/

  5. #5
    Ngày gia nhập
    10 2006
    Nơi ở
    Hà Nội
    Bài viết
    146

    Trieuanhl không dùng con trỏ mà cấp phát cố định luôn.
    char hoten[30];
    -> họ tên là mảng 30
    ->không hay.

  6. #6
    No Avatar
    htqh Khách

    Mặc định [VC] tại sao hàm cin.getline này không dung đuọc

    Trích dẫn Nguyên bản được gửi bởi trieuanhl
    Code:
    // SX_kieudulieu_SV.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    #include "iostream.h"
    #include "string.h"
    class CSinhVien
    {
    	private:
    		char hoten[30];
    		int maso;
    	public:
    		void nhap();
    		void xuat();
    };
    void main()
    {
    	CSinhVien SV[100];
    	int i,n;
    
    	cout<<"nhap so luong sinh vien can nhap:";
    	cin>>n;
    	fflush(stdin);
    	for(i=0; i<n; i++)
    		SV[i].nhap();
    
    	for(i=0; i<n; i++)
    		SV[i].xuat();
    }
    
    void CSinhVien::nhap()
    {
    	cout<<"nhap ten:";
    	cin.getline(hoten,30);
    	cout<<"\n nhap ma so:";
    	cin>>maso;
    }
    void CSinhVien::xuat()
    {
    	cout<<"\nten:"<<hoten;
    	cout<<"\n ma so:"<<maso;
    }
    Bạn thân mến!Theo mình thì chỉ cần bạn thêm hàm cin.ignore(); sau hàm cin>>n;
    là sẽ được thôi!
    Bởi vì nếu bạn dùng lệnh
    cin>>n;
    sau đó bạn sẽ ấn Enter đúng không nào??Và như vậy thì kí tự "\n"(kí tự xuống dòng) vẫn còn trên dòng nhập như vậy sẽ dẫn đến trôi dòng!Thử xem nhé!Good luck!

  7. #7
    Ngày gia nhập
    02 2009
    Bài viết
    2

    C++ Code:
    1. void CSinhVien::nhap()
    2. {
    3.     cout<<"nhap ten:";
    4.     fflush(stdin);//[I][COLOR="Purple"]them cai nay vao bai cua ban se rat hoan chinh[/COLOR][/I]
    5.     cin.getline(hoten,30);
    6.     cout<<"\n nhap ma so:";
    7.     cin>>maso;
    8. }
    Đã được chỉnh sửa lần cuối bởi meoconlongvang : 27-02-2009 lúc 11:49 PM.

Các đề tài tương tự

  1. Lập trình C++ Lỗi cin.getline();
    Gửi bởi mrtyoffline trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 03-10-2011, 08:59 PM
  2. lỗi trôi mất ở hàm getline - giúp em với
    Gửi bởi growing trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 13
    Bài viết cuối: 17-04-2011, 04:46 PM
  3. Phân biệt cin.get() và cin.getline()
    Gửi bởi trungthuan trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 23-07-2010, 10:42 AM
  4. Cho hỏi cách chặn không bị tràn bộ nhớ lệnh cin.getline
    Gửi bởi puyoberry trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 02-11-2008, 10:42 AM
  5. chưa hiểu về nhập dữ liệu vào getline
    Gửi bởi hahakk trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 10-03-2008, 10:09 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn