Announcement

Collapse
No announcement yet.

Hỏi về lệnh getchar

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [Ansi C] Hỏi về lệnh getchar

    Mình chưa hiểu lệnh getchar() trong đoạn code này lắm! Lệnh getchar() để nhận giá trị từ bàn phím, nhưng trong đoạn code này lệnh getchar() nhận giá
    trị từ bàn phím rồi lưu vào biến nào vậy?
    Mình cũng thử bằng Eclipse rồi nhưng mà sao nó ko chạy! Toàn nhận giá trị từ bàn phím ko!

    Đây là đoạn code trong sach The C program language
    Code:
    #include <stdio.h>
    /* count characters in input; 1st version */
    main()
    {
    long nc;
    nc = 0;
    while (getchar() != EOF)
    ++nc;
    printf("%ld\n", nc);

  • #2
    Chạy > Nhập gì đó > Enter > Bấm tổ hợp phím "ctrl + z" > Enter phát nữa
    Last edited by 10520541; 21-11-2012, 00:57.

    Comment


    • #3
      Originally posted by 10520541 View Post
      Chạy > Nhập gì đó > Enter > Bấm tổ hợp phím "ctrl + z" > Enter phát nữa
      Cũng vậy thôi bạn ơi!

      Comment


      • #4
        Originally posted by i0988305410 View Post
        Cũng vậy thôi bạn ơi!
        Bạn xem lại IDE của mình xem sao nhé! Làm theo cách của bạn Trung là đúng rồi đó. Nhấn Ctrl + Z để thoát khỏi vòng lặp, dừng việc nhập.

        Comment


        • #5
          getchar() : 1 marcro trả về giá trị sau khi thực hiện phép gán vào getchar() lấy từ bộ nhớ đệm và kết thúc bằng '\n' ( enter ) , nghĩa là trả về ký tự hoặc những kí tự ( xâu ) sau khi nhập từ bán phím và kết thúc việc nhập bằng Enter
          Nên while(getchar()!=EOF) là khi mà những kí tự trả về đó chưa phải là End-Of-File ( EOF ) thì vòng lặp vẫn tiếp tục , mà End-Of-File trong soạn thảo có text là Ctrl-Z ( win32)
          Last edited by 11520235; 21-11-2012, 09:45.

          Comment


          • #6
            Originally posted by i0988305410 View Post
            Cũng vậy thôi bạn ơi!
            Thử lại với "ctrl + d" nha tưởng dùng windows :sogood:

            Comment


            • #7
              Originally posted by 10520541 View Post
              Thử lại với "ctrl + d" nha tưởng dùng windows :sogood:
              Vẫn vậy thôi bạn à! Vẫn ko thoát được lệnh while

              Comment


              • #8
                Originally posted by i0988305410 View Post
                Vẫn vậy thôi bạn à! Vẫn ko thoát được lệnh while
                crtl + C xem bạn, không dùng eclipse bao giờ :-)
                Be different and always different
                http://archlinuxvn.org/
                http://theslinux.org
                http://lab.infosec.xyz

                Comment


                • #9
                  Originally posted by 10520058 View Post
                  crtl + C xem bạn, không dùng eclipse bao giờ :-)
                  Vẫn không đc bạn à! Tại mình định mò từ từ C/C++->Java->Android nên mới dùng Eclipse đó bạn à!
                  Theo bạn thì trong Ubuntu tốt nhất là dùng IDE gì?
                  Cảm ơn nha!

                  Comment


                  • #10
                    Theo bài này thì chỉ co ctrl + d/z (Post #2)
                    I want to use getchar() to process a string. Here's a simplified version. I've used this code before to stop entering characters when the user enters


                    Tham khảo link này xem.

                    Comment


                    • #11
                      Originally posted by i0988305410 View Post
                      Vẫn không đc bạn à! Tại mình định mò từ từ C/C++->Java->Android nên mới dùng Eclipse đó bạn à!
                      Theo bạn thì trong Ubuntu tốt nhất là dùng IDE gì?
                      Cảm ơn nha!
                      theo mình thì bạn thích gì dùng đó, đầu tiên mình gợi ý thôi. Bạn tiếp xúc nhiều sẽ thấy cái nào hợp :-)

                      + Ngôn ngưc khác nhau thì dùng cái khác nhau :
                      - C/C++ :Codeblock so good
                      - Java/Android: eclipse/netbean.

                      Nhưng để bắt đầu khuyên bạn nên dùng text editor như Vim/Nano/gedit/Kate,... để rèn khả năng lập trình cho vững và chạy bằng dòng lệnh debug. Việc này bạn sẽ thấy nhàm chán nhưng sẽ tốt cho việc xem xét lỗi sau này :-)
                      Be different and always different
                      http://archlinuxvn.org/
                      http://theslinux.org
                      http://lab.infosec.xyz

                      Comment


                      • #12
                        Mình làm bằng gedit thì chạy được rồi, cảm ơn mọi người!

                        Comment


                        • #13
                          Cho mình hỏi thêm là sao phải gán c=getchar(). getchar() là để nhận kí tự từ bàn phím mà, chỉ cần mình
                          while(getchar() != EOF)
                          putchar();

                          là được rồi.
                          À, mình cũng thử bằng gedit rồi, nó báo là: IO.c:10:1: error: too few arguments to function ‘putchar’
                          Mình chưa rõ chỗ này lắm, mong giải thích cặn kẽ! Cảm ơn mọi người

                          Comment


                          • #14
                            Originally posted by i0988305410 View Post
                            Cho mình hỏi thêm là sao phải gán c=getchar(). getchar() là để nhận kí tự từ bàn phím mà, chỉ cần mình
                            while(getchar() != EOF)
                            putchar();

                            là được rồi.
                            À, mình cũng thử bằng gedit rồi, nó báo là: IO.c:10:1: error: too few arguments to function ‘putchar’
                            Mình chưa rõ chỗ này lắm, mong giải thích cặn kẽ! Cảm ơn mọi người
                            Be different and always different
                            http://archlinuxvn.org/
                            http://theslinux.org
                            http://lab.infosec.xyz

                            Comment

                            LHQC

                            Collapse
                            Working...
                            X