0 k thích
1.2k đã xem
trong CNTThuc bởi (310 điểm)

Mình đang dùng Visual Studio 2012, theo mình biết thì từ bản này trở lên, Microsoft yêu cầu người dùng phải sử dụng hàm scanf_s thay vì scanf và _getch thay vì getch, và một số hàm khác. Mình có tìm trên mạng thì cũng biết cách để không bị báo lỗi khi dùng các hàm đó, vd như thêm _CRT_SECURE_NO_WARINGS hay #pragma warning(disable : 4996), tuy nhiên, dùng cách này thì mỗi project đều phải lặp lại như thế. Không biết có cách chỉnh nào mà mặc định Visual Studio sẽ không báo lỗi như vậy nữa không ?

2 Trả lời

+1 thích
bởi (620 điểm)
Cách thứ 1 là như bạn nói, cách thứ 2 là set thủ công trong Project properties, cách thứ 3 là quay về VS 2010
bởi (310 điểm)
cách 1  và 2 đều phải làm cho từng project, còn cách 3 thì... khi đến cuối cùng mới tính tới @@. thằng bạn em nó cũng dùng bản Visual Studio 2012  Ultimate giống em, nhưng nó không bị giống em, nhưng mà khi hỏi nó có chỉnh gì không thì nó nói không chỉnh gì hết, tự nó như thế
bởi (620 điểm)
Mình nghĩ bạn nên dùng những lệnh của C++ như cin, cout thay vì scanf, printf vì chúng đã cũ rồi, có rất nhiều nguy cơ xảy ra lỗi
bởi (3.2k điểm)
học kì 1 năm nhất thì chỉ mới đến scanf thôi a 1112418 à :3
+2 k thích
bởi (210 điểm)

Bạn xem ở link http://stackoverflow.com/questions/21434735/difference-between-scanf-and-scanf-s sẽ hiểu được vấn đề.

Tóm lại là, scanf_s là đặc trưng cho trình biên dịch của Microsoft. Và dùng scanf sẽ kém an toàn hơn scanf_s, nên Visual Studio sẽ thông báo khi dùng scanf. Lý do: scanf sẽ không kiểm tra vùng nhớ khi ghi dữ liệu, điều này dẫn đến ghi đè vào vùng nhớ mà người lập trình không thực sự quản lý.

Cuối cùng, bạn không nên tìm cách để Visual Studio không báo lỗi nữa mà phải thay tất cả những nơi sử dụngscanf bằng scanf_s. Nhưng đúng ra thì bạn nên sử dụng _tscanf_s thay cho scanf scanf_s vì vấn đề hỗ trợ UNICODE. Lại cần phải xem thêm http://msdn.microsoft.com/en-us/library/w40768et.aspx.

 

Chào mừng đến với Q&A FIT. Bạn có thể đặt câu hỏi và nhận được câu trả lời từ các bộ phận hỗ trợ và những thành viên khác tại Khoa Công nghệ Thông tin, Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia TP.HCM. Bạn hãy đăng nhập bằng tài khoản Google để gửi hoặc trả lời các câu hỏi.
...