30/09/2018, 19:09
Lỗi fflush(stdin) VS 2015
Em đang học C++ khi nhập vào fflush(stdin) trước getline(cin,ten)
khi chạy thử thì dấu enter vẫn bị nhận vào, em phải dùng cin.ignore() để thay thế cho fflush(stdin), em nhờ bạn chạy thử đoạn code trên máy nó thì vẫn hoạt động bình thường ??? nó dùng VS 2013 còn em dùng VS 2015, có ai có cách gì fix không giờ cài lại bản 2013 tốn thời gian quá.
Bài liên quan
fflush là để dành cho stdout. Xài fflush(stdin) thì gây ra undefined behavior. VS2015 làm vậy là đúng rồi. Xài
cin.ignore(100, '\n');
mới đúng. Mấy thằng bạn viết fflush(stdin) là sai đó, kệ tụi nónếu kĩ hơn nữa thì viết là
chuẩn… dùng cin.ignore(100,’\n’); của c++ là đẹp nhất
Không biết Microsoft đã làm gì mà VS2015 lại không dùng được fflush(stdin). Chỉ cần cin.clear() cin.ignore() là được rồi. Phải clear trước vì nếu std::cin đang bật cờ lỗi thì không ignore được.
Tks mọi người nhé, cứ tưởng bị lỗi phải cài lại
rewind(stdin) or while(getchar() != ‘\n’);