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

Đề tài: cho mình hỏi một chương trình C cơ bản

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

    Angry cho mình hỏi một chương trình C cơ bản

    Đây là một đoạn code minh gõ lại trong sách về C:
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. void main()
    4. {
    5.     long nc;
    6.     nc=0 ;
    7.     while(getchar() != EOF)
    8.     {
    9.         ++nc;
    10.         printf("%ld\n", nc);
    11.     }
    12.     getch();
    13. }
    chương trình đếm số kí tự nhập vào từ bàn phím
    EOF(end of file),trong stdio.h có giá trị mặc định là (-1)
    nhưng khi mình gõ -1 vào thì chương trình vẫn chạy mà không dưng
    có bác nào biết nó sai chỗ nào không, chỉ mình với
    thanks so much!

    *Vui lòng bọc code vào tag code khi post bài trên C Việt.
    Đã được chỉnh sửa lần cuối bởi QuangHoang : 20-01-2009 lúc 10:36 AM.

  2. #2
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Chào bạn không biết ý bạn là đang định làm gì, nhưng:
    - EOF đúng là bằng trừ một
    - Tuy nhiên getchar() trả về giá trị là mã ASCII của kí tự nhập vì vậy khi bạn gõ -1 thì getchar trả về 45 mã ASCII của '-'

    Bạn thử cái này xem đc k, không thì bạn dùng break để kết thúc vòng lặp khi nhập sai cũng đc.
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. int main()
    4. {
    5.     long nc;
    6.     char ch;
    7.     nc=0 ;
    8.     while(ch != EOF)
    9.     {
    10.         fflush(stdin);
    11.         scanf("%d",&ch);
    12.  
    13.         ++nc;
    14.         printf("%c ",ch);
    15.         printf("%ld\n", nc);
    16.     }
    17.     getch();
    18. }

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