30/09/2018, 21:41

Vấn đề khi lập trình C

Chào anh chị
Hiện tại em đang học lập trình C hix mới được có 3 ngày
Lúc viết code em có dùng cái lệnh này trong C
getch();
Nhưng lúc chạy nó lại lỗi lên mạng thì nó chỉ viết như vầy
_getch();
Cho em hỏi cái dấu _ nó có tác dụng gì ạ

Trần Ngọc Khoa viết 23:48 ngày 30/09/2018

_getch(); là đặc trưng của trình biên dịch Microsoft. Việc dùnggetch() sẽ kém an toàn hơn so với_getch().
Bạn nên tuân thủ quy tắc của trình biên dịch Micrsoft.

Văn Dương viết 23:49 ngày 30/09/2018

getch() và _getch() là 2 cái khác nhau.
Dấu _ dùng thêm là một cách để phân biệt 2 cái đó thôi.

Nguyễn Hiến viết 23:54 ngày 30/09/2018

Cám ơn hai anh ạ

Người bí ẩn viết 23:53 ngày 30/09/2018

Cái này do Visual Studio 2012 trở lên nó mới bị như vậy, nhất là Visual Studio 2015. Dùng cái này sẽ an toàn hơn nhưng nếu không quen thì cũng mất thời gian, vả lại cái hàm cũ nó cũng “hiếm” khi bị lỗi.

Nếu bạn thấy phiền hoặc không quen tay khi dùng hàm scanf_s hoặc _getch() mà muốn dùng hàm scanfgetch() bình thường thì làm như sau:

Click chuột phải vào Project (trong cửa số Solution) chọn Properties
Ở ô bên trái chọn theo thứ tự sau: Configurations Properties => C/C++ => Preprocessor
Nhìn qua ô bên phải, dòng đầu tiên Preprocessor Definitions, bấm chuột vào dòng đó, sẽ có 1 nút mũi tên ở cuối dùng hiện lên, bấm vào mũi tên đó và chọn Edit
Ở ô đầu tiên trong cửa số vừa bật ra Preprocessor Definitions đánh dòng này vào: _CRT _NONSTDC _NO _WARNINGS .
Chọn lần lượt: OK => Apply => OK

Ở phần đầu code (dòng 1), thêm dòng này (trước dòng #include ) : #define CRT_SECURE_NO_WARNINGS
Vậy là giờ bạn thoải mái dùng hàm scanf và getch(); mà không sợ lỗi nhé

Nguyễn Hiến viết 23:56 ngày 30/09/2018

Cám ơn anh nhiều ạ

Hùng Tu Chí viết 23:54 ngày 30/09/2018

thêm #include<conio.h> là hết lỗi

Bài liên quan
0