Đặc tả đúng cho kiểu dữ liệu long long (int64_t) trong C++

Hi mọi người.
Mình hay làm các bài trên codeforces và một số trang online judges khác thì thường nếu dùng scanf() (vì tốc độ nhập nhanh hơn cin) với kiểu dữ liệu long long mà để đặc tả %lld sẽ bị advise chuyển thành %I64d. Mình dùng được một thời gian thấy khá ok đến hôm qua làm 1 bài thì bị dính lỗi chỗ này, cụ thể là trên ideone nhập cho long long dùng %I64d ko nhập được giá trị cho biến, mà chuyển sang %lld hoặc dùng cin mới nhập được: https://ideone.com/EDBzXO
Mình có search đc 1 post nói về vấn đề này trên Codechef: https://discuss.codechef.com/t/difference-between-i64d-lld/3810
Sơ qua thì có vẻ lỗi là do compiler, phụ thuộc vào compiler biên dịch.
Mọi người cho mình confirm lại vấn đề này và cụ thể %I64d hoạt động được trên những compiler nào và %lld hoạt động được trên những compiler nào không ạ? (của C++)
Mình xin cảm ơn.

%I64d chỉ trên Windows thôi (MinGW + VS)
ideone dùng linux nên tạch

7 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?