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

Đề tài: flushall(), chỉ mình với

  1. #1
    Ngày gia nhập
    07 2007
    Bài viết
    10

    Mặc định flushall(), chỉ mình với

    Bài mẫu chạy C của mình có hàm flushall()
    Mình thử bỏ đi và thấy rằng sai

    Code:
    #include <conio.h>
    #include <stdio.h>
    #include <string.h>
    typedef struct
    {
       unsigned char ngay;
       unsigned char thang;
       unsigned int nam;
    } ngaythang;
    typedef struct
    {
       char mssv[10];
       char hoten[40];
       ngaythang ngaysinh;
       int phai;
       char diachi[40];
    } sinhvien;
    void insv(sinhvien s)
    {
       printf("mssv:     | Ho va ten:        |Ngay sinh           |Dia chi:\n");
       printf("%s|%s|%d-%d-%d|%s\n",s.mssv,s.hoten,s.ngaysinh.ngay,s.ngaysinh.thang,s.ngaysinh.nam,s.diachi);
    }
    int main()
    {
       sinhvien sv,s;
       clrscr();
       printf("Nhap mssv: "); gets(sv.mssv);
       printf("nhap ho va ten: "); gets(sv.hoten);
       printf("Sinh ngay: ");scanf("%d",&sv.ngaysinh.ngay);
       printf("Thang: "); scanf("%d",&sv.ngaysinh.thang);
       printf("Nam: "); scanf("%d",&sv.ngaysinh.nam);
       printf("Gioi tinh (0: nu), (1:nam): "); scanf("%d",&sv.phai);
       flushall();
       printf("Dia chi: "); gets(sv.diachi);
       insv(sv);
       s=sv;
       insv(s);
       getch();
       return 0;
    }
    Có thể cho mình biết hàm flushall() có chức năng gì không? Đọc hướng dẫn trong help ko hiểu rõ lắm
    Đã được chỉnh sửa lần cuối bởi hani : 23-12-2007 lúc 07:16 AM.
    offline as always

  2. #2
    Ngày gia nhập
    11 2007
    Bài viết
    47

    Khi bạn nhập = hàm scanf, bạn phải gõ enter để kêt thúc việc nhập. Kí tự enter đó( kí hiệu là /n) được lưu trong bộ đệm . Khi này, nếu bạn dùng hàm gets ( hay cin.getline) thì kí tự đó sẽ được đưa vào xâu, làm sai lệch kết quả.

    Để khắc phục, phải dùng hàm để xóa bộ đệm trước khi dùng hàm gets( hay cin.getline)

    Hàm flushall( khai báo trong string.h) hay cin.ignore(1) hay fflush(stdin) (khai báo trong iostream) đều có chức năng như thế.

  3. #3
    Ngày gia nhập
    07 2007
    Bài viết
    10

    Cám ơn bạn nha ^^
    offline as always

  4. #4
    Ngày gia nhập
    03 2008
    Bài viết
    0

    Mình dùng C-free 4.0 lại bị báo lỗi ngay dòng flushall(); các bạn có thể cho biết tại sao ko, sửa hoài vẫn không được.

    Thnks

  5. #5
    Ngày gia nhập
    10 2009
    Nơi ở
    Huế
    Bài viết
    3

    "Mình dùng C-free 4.0 lại bị báo lỗi ngay dòng flushall(); các bạn có thể cho biết tại sao ko, sửa hoài vẫn không được."
    Dùng c free 4 thì phải cài thêm trình biên dịch Borlan C++ 5.5

  6. #6
    Ngày gia nhập
    03 2016
    Bài viết
    0

    Mặc định flushall(), chỉ mình với

    Mình dùng C-free 4.0 lại bị báo lỗi ngay dòng flushall(); các bạn có thể cho biết tại sao ko, sửa hoài vẫn không được.


    Bạn dùng _flushall(); là được

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

  1. Bài tập C Cho e hỏi lệnh flushall(); có nghĩa là gì?
    Gửi bởi danganhvu2012 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 13-04-2012, 07:56 AM
  2. Kỹ thuật C hàm flushall & fflush(stdin)
    Gửi bởi t_ily_ht 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-12-2010, 01:31 AM

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