Tôi nhận thấy rằng bất cứ khi nào tôi viết chương trình sử dụng std::cin
nếu tôi muốn người dùng nhấn Enter để kết thúc chương trình, tôi phải viết std::cin.ignore()
hai lần để có được hành vi mong muốn. Ví dụ:Tại sao cần phải có cin.ignore() thứ hai?
#include <iostream>
int main(void)
{
int val = 0;
std::cout << "Enter an integer: ";
std::cin >> val;
std::cout << "Please press Enter to continue..." << std::endl;
std::cin.ignore();
std::cin.ignore(); // Why is this one needed?
}
Tôi cũng đã nhận thấy rằng khi tôi không sử dụng cin
cho đầu vào thực tế mà chỉ cho ignore()
cuộc gọi cuối cùng, tôi chỉ cần một.
bạn đang chạy Linux hoặc Windows, nó có thể là do vấn đề CRLF nếu bạn chạy các cửa sổ ... – Ben
Cùng "vấn đề" xảy ra trên Solaris. Nó không liên quan gì đến CRLF. –