具有cin的C ++读取返回字符
时间:2020-03-06 14:53:50 来源:igfitidea点击:
我想知道如何使用" cin",以便如果用户不输入任何值而仅按" ENTER",则cin
会将其识别为有效输入。
解决方案
cin.getline是否可以解决问题?
我发现对于用户输入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关于"很容易失去同步,并在打印需要下次查看的提示之前阅读用户上次编写的内容。
如果我们使用std :: getline(std :: cin,a_string)
阅读每一行,然后解析返回的字符串(例如,使用istringstream或者其他技术),则使打印的提示与从中读取的信息保持同步要容易得多。 std :: cin,即使面对乱码也是如此。
我们可能需要尝试std :: getline
:
#include <iostream> #include <string> std::string line; std::getline( std::cin, line ); if( line.empty() ) ...
尝试取消缓冲cin(默认情况下已缓冲)。