提问人: 提问时间:9/30/2008 最后编辑:Mateen Ulhaq 更新时间:4/3/2015 访问量:16825
C++ 读取返回字符
C++ having cin read a return character
答:
2赞
Thorsten79
9/30/2008
#1
做 cin.getline 解决您的问题?
5赞
CB Bailey
9/30/2008
#2
我发现用户输入效果很好。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”,则很容易不同步,并在打印他下次需要看到的提示之前阅读用户上次写的内容。
如果您读取每个完整的行,然后解析返回的字符串(例如,使用 istringstream 或其他技术),即使面对乱码输入,也更容易使打印的提示与从 std::cin 读取同步。std::getline( std::cin, a_string )
15赞
Martin Cote
9/30/2008
#3
您可能想尝试:std::getline
#include <iostream>
#include <string>
std::string line;
std::getline( std::cin, line );
if( line.empty() ) ...
0赞
Kasprzol
9/30/2008
#4
尝试取消缓冲 cin(默认缓冲)。
2赞
BigAlMoho
3/13/2015
#5
要检测用户按 Enter 键而不是输入整数:
char c;
int num;
cin.get(c); // get a single character
if (c == 10) return 0; // 10 = ascii linefeed (Enter Key) so exit
else cin.putback(c); // else put the character back
cin >> num; // get user input as expected
或者:
char c;
int num;
c = cin.peek(); // read next character without extracting it
if (c == '\n') return 0; // linefeed (Enter Key) so exit
cin >> num; // get user input as expected
评论