Mình có chương trình này khi dùng scanf_s trong VS chạy thì sai mà khi dùng scanf thôi thì nó lại chạy đúng.
Trước đây mình cũng đã từng gặp trường hợp này 1 lần rồi à. Có vẻ cần lưu tâm đến ký tự trong hàm scanf_s và scanf này.
Sao hàm scanf_s nguy hiểm vậy?
Còn mình thì ngược lại của trường hợp bạn , chạy scanf visual kêu nguy hiểm scanf_s an toàn hơn :V
Theo như Microsoft thì scanf không bảo mật bằng scanf_s và dễ gây lỗi tràn bộ nhớ đệm
Biết là nó bảo mật hơn. Cơ mà các bạn thử chạy cái code của mình xem. :3
Bạn sử dụng sai hàm scanf_s. Theo tài liệu của Microsoft, bạn phải đưa kích thước (số lượng) ký tự muốn nhập vào, ví dụ:
char s[10];
scanf_s("%9s", s, _countof(s)); // buffer size is 10, width specification is 9
cho ký tự:
char c;
scanf_s("%c", &c, 1);
2 Likes
“kích thước (số lượng) ký tự muốn nhập vào”
Bạn nói rõ hơn cho mình chỗ này với à.
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?