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

Đề tài: chạy lệnh getchar() trong C

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

    Mặc định chạy lệnh getchar() trong C

    giúp mình đoạn code sau:



    #include <stdio.h>
    #include <conio.h>
    void main(void)
    {
    int k;
    char c;
    for (k=1;k<=4;k++)
    {
    printf("nhap vao chu thu %d\n",k);
    getchar();
    }
    getch();
    }

    kết quả chạy ra:
    nhap vao phan tu thu 1
    n
    nhap vao phan tu thu 2
    nhap vao phan tu thu 3
    g
    nhap vao phan tu thu 4
    b

    giải thích giùm tại sao nó không chạy i=2?

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

    Ở đây trước hết ta cần tìm hiểu hàm getchar() hoạt động như thế nào:
    Hàm getchar() đọc lần lượt từng kí tự trong bộ nhớ đệm. Nếu bộ nhớ đệm trống thì chương trình dừng lại để đọc từ bàn phím, cho đến khi ấn enter thì hàm getchar() bắt đầu đọc lần lượt từng kí tự vừa nhập vào, kể cả kí tự có mã 10 là phím enter, mỗi lần chỉ đọc một kí tự.

    Như vậy trong chương trình của bạn, khi nhập vào phần tử thứ nhất, nếu bạn nhấn một phím rồi nhấn enter thì rõ ràng bạn vừa nhập vào 2 kí tự, và getchar() sẽ đọc kí tự thứ nhất, đến khi yêu cầu nhập vào phần tử thứ 2 thì lúc này trong bộ nhớ vẫn còn kí tự enter, nên getchar() đọc kí tự này và không dừng lại để nhập từ bàn phím, và đến phần tử thứ 3, vì đã đọc hết từ bộ nhớ nên hàm cần nhập vào từ bàn phím.

    Nếu ở phần tử thứ nhất bạn nhấn vào ít nhất 3 phím rồi nhấn enter, như vậy đã có ít nhất 4 kí tự vừa được nhập vào, vậy thì bạn chỉ cần ấn thêm một phím bất kì cho hàm getch() để chương trình kết thúc mà không phải nhập cho các phần tử tiếp theo, bạn đã nhập ngay lần đầu rồi

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

    vậy ở đây phải dùng lệnh nào,hàm scanf cũng không được

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

    Mình muốn hỏi bạn mục đích của chương trình là gì? Có phải chỉ là nhập từ bàn phím một kí tự không?
    _______..___________..__.........__..__________... ___...___________.
    \.......... \.\_...._____//....\......./....\\______......\.|.....|\_....._____/
    /......|.....\..|...... __)_\.....\/\/......./..|.......|..._/.|.....|.|.....__)_
    /......|.......\|.............\\............../....|......|......\|.....|.|............\
    \____|__...//_______.../.\ __ /\.../......|______.../.|___|/______.../
    .............\/..............\/...........\/...................\/.....................\/

  5. #5
    Ngày gia nhập
    10 2011
    Bài viết
    0

    mình chỉ muốn chạy đúng chương trình là được như đã yêu cầu

  6. #6
    Ngày gia nhập
    01 2011
    Nơi ở
    \WINDOWS\Assembly\
    Bài viết
    54

    Mặc định chạy lệnh getchar() trong C

    Trích dẫn Nguyên bản được gửi bởi oohaycomvn Xem bài viết
    giúp mình đoạn code sau:



    #include <stdio.h>
    #include <conio.h>
    void main(void)
    {
    int k;
    char c;
    for (k=1;k<=4;k++)
    {
    printf("nhap vao chu thu %d\n",k);
    getchar();
    }
    getch();
    }

    kết quả chạy ra:
    nhap vao phan tu thu 1
    n
    nhap vao phan tu thu 2
    nhap vao phan tu thu 3
    g
    nhap vao phan tu thu 4
    b

    giải thích giùm tại sao nó không chạy i=2?
    Thử:

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. void main(void)
    4. {
    5.     int k;
    6.     char c;
    7.     for (k=1;k<=4;k++) 
    8.     {  
    9.         printf("nhap vao chu thu %d\n",k);
    10.         getchar();
    11.         fflush(stdin); // thêm vô
    12.     }
    13.     getch();   
    14. }

  7. #7
    Ngày gia nhập
    10 2011
    Bài viết
    0

    bài viết hay quá.thanks nhiều

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

  1. Bài tập C Hỏi về getchar?
    Gửi bởi i1020242 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 10-05-2013, 03:34 PM
  2. Tác dụng của câu lệnh while(getchar()!='\n'); trong lập trình C?
    Gửi bởi manta trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 5
    Bài viết cuối: 11-12-2011, 11:05 PM
  3. Mã nguồn C Lỗi Không dừng được màn hình dù đã gọi getchar()
    Gửi bởi longtth 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: 12-07-2011, 11:33 PM
  4. hàm getchar() sử dụng trong C như thế nào?
    Gửi bởi thang7788 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: 07-04-2011, 10:12 PM
  5. Lập trình C Lệnh getchar ko được thực hiện?
    Gửi bởi sunshine trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 13-06-2010, 12:57 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