Ủ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ỉ??
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?
Ủ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
Chẳng hạn đoạn code:
nếu chạy bằng borlan C thì chạy được mà chạy bằng C-Free thì không!PHP Code:#include <conio.h>
void main()
{
getch();
}
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.
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.
cảm ơn bạn nhé!
#include <windows.h> viết lại hàm getch() luôn cho khỏe :
C++ Code:
int getch(void) { int response; response = _getch(); HANDLE hConsole = GetStdHandle( STD_INPUT_HANDLE ); FlushConsoleInputBuffer( hConsole ); return response; }
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)