我不知道如何使用cin
,这样,如果用户没有任何价值进入,只是推ENTER
说cin
会将其识别为有效输入.
您可能想尝试std::getline
:
#include#include std::string line; std::getline( std::cin, line ); if( line.empty() ) ...
我发现对于用户输入std::getline
非常有效.
您可以使用它来读取一行,然后丢弃它所读取的内容.
做这样的事情的问题,
// Read a number: std::cout << "Enter a number:"; std::cin >> my_double; std::count << "Hit enter to continue:"; std::cin >> throwaway_char; // Hmmmm, does this work?
这是因为如果用户输入其他垃圾,例如"4.5 - about",则很容易失去同步并且在打印下次需要查看的提示之前读取用户最后一次写入的内容.
如果您阅读每个完整的行,std::getline( std::cin, a_string )
然后解析返回的字符串(例如使用istringstream或其他技术),即使面对乱码输入,也更容易使打印的提示与std :: cin的读取同步.