Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 20 kết quả

Đề tài: Cho mình hỏi về lệnh getch()

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

    Mặc định Cho mình hỏi về lệnh getch()

    Mình dùng C-Free 4.0, chẳng hiểu vì sao nếu chỉ khai báo #include <stdio.h> hoặc #include <conio.h> mà trong code có dùng lệnh getch() thì chạy cứ báo lỗi:
    "[Error] C:\Program Files\C-Free 4\temp\Untitled1.cpp:4: implicit declaration of function `int getchar(...)'"
    Nếu khai báo cả hai thư viện stdio và conio thì lại chạy bình thường. Trong khi đó khi dùng Borlan C thì mình chỉ cần khai báo thư viện conio.h là chạy bình thường. Thế rốt cuộc lệnh getch() thuộc thư viện nào và xử lý thằng C-Free thế nào đây?

  2. #2
    Ngày gia nhập
    02 2008
    Nơi ở
    AYS 107
    Bài viết
    41

    Ủa, mình tưởng thư viện stdio.h lúc nào chả phải include vào?? Còn hàm getch() nó được khai báo trong thư viện conio.h
    Thế nên phải include cả 2 file stdio.h và conio.h mới chạy bình thường được, đâu chả thế nhỉ??
    I don't wanna waste another day

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

    Chẳng hạn đoạn code:
    PHP Code:
    #include <conio.h>
    void main()
    {
      
    getch();

    nếu chạy bằng borlan C thì chạy được mà chạy bằng C-Free thì không!

  4. #4
    Ngày gia nhập
    09 2007
    Bài viết
    724

    mỗi IDE nó có một qui định khác nhau cho người dùng, đã dùng nó rồi thì phải tuân thủ các qui tắc của nó thôi. đây đâu phải là chuẩn đâu mà bắt nó phải theo.

  5. #5
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Thằng C-free này rất tệ, cậu chuyển qua xài Visual C++ 2008 Express, nó cũng free. Vào microsoft webstite down về, trong đó cũng có #include <conio.h> với lại cậu vừa có thể dùng API của window.

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

    Mặc định Cho mình hỏi về lệnh getch()

    cảm ơn bạn nhé!

  7. #7
    Ngày gia nhập
    01 2008
    Nơi ở
    UIT
    Bài viết
    129

    Trích dẫn Nguyên bản được gửi bởi zkday2686 Xem bài viết
    mỗi IDE nó có một qui định khác nhau cho người dùng, đã dùng nó rồi thì phải tuân thủ các qui tắc của nó thôi. đây đâu phải là chuẩn đâu mà bắt nó phải theo.
    IDE thì làm gì có quy định nào ? Chỉ compiler mới có quy định riêng thôi !
    Nếu bạn dùng C-Free mà sử dụng MinGW thì nó không cho dùng void main() mà phải là int main(). Mặt khác MinGW không có conio.h

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

    Trích dẫn Nguyên bản được gửi bởi developer Xem bài viết
    Ủa, mình tưởng thư viện stdio.h lúc nào chả phải include vào?? Còn hàm getch() nó được khai báo trong thư viện conio.h
    Thế nên phải include cả 2 file stdio.h và conio.h mới chạy bình thường được, đâu chả thế nhỉ??
    Theo mình nghĩ ý kiến của bạn là đúng nhất, mình chưa gặp trường hợp nào khác cả. Hehe...

  9. #9
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    #include <windows.h> viết lại hàm getch() luôn cho khỏe :
    C++ Code:
    1. int getch(void)
    2. {
    3.     int response;
    4.     std::cout << std::flush;
    5.     response        = _getch();
    6.     HANDLE hConsole = GetStdHandle( STD_INPUT_HANDLE );
    7.     FlushConsoleInputBuffer( hConsole );
    8.     return response;
    9. }

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

    Trích dẫn Nguyên bản được gửi bởi tatung Xem bài viết
    Chẳng hạn đoạn code:
    PHP Code:
    #include <conio.h>
    void main()
    {
      
    getch();

    nếu chạy bằng borlan C thì chạy được mà chạy bằng C-Free thì không!
    Thực tế thì thế này, thư viện <stdio.h> chưa các hàm nhập xuất, còn hàm getch(), getchar()... nằm trong thư viện <conio.h> . Khả dĩ chương trình trên của bạn chạy được là vì thân hàm main() của bạn chỉ có mỗi lệnh getch() nên đương nhiên không cần thư viện <stdio.h> rồi, bạn thêm câu lệnh printf("hello"); sẽ thấy báo lỗi không tìm thấy thư viện ngay thôi.
    Thằng C-free này thì nó chẳng bị làm sao cả , nó chỉ là công cụ soạn thảo, bên cạnh đó nó có thể tích hợp các compiler khác (mặc định là mingw)

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

  1. Công dụng của getch()???
    Gửi bởi duydx trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 10
    Bài viết cuối: 15-01-2015, 05:17 PM
  2. Lập trình C++ getch()
    Gửi bởi Nhap mon c trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 25-03-2013, 10:44 PM
  3. Mã nguồn C Lỗi Lỗi cuối hàm getch()...
    Gửi bởi lytieubinh_269 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 20-11-2011, 01:10 PM
  4. Hàm getch() có những tác dụng gì?
    Gửi bởi vvchinh21 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 12
    Bài viết cuối: 26-02-2010, 02:40 PM
  5. getch(); ?
    Gửi bởi ath trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 14-01-2008, 04:58 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