【发布时间】:2013-12-07 10:38:36
【问题描述】:
我想从输入中提取 6 个字符(包括“\n”)到一个数组,并通过在数组中的特定位置获取换行符来确保输入正确。这就是我所做的,但我无法修复它。如果用户输入超过 5 个字符,则循环重复,但剩余字符仍在流中。使用 cin.ignore('\n') 我得到一个无限循环,流中没有字符。
do
{
cout << "Please log in: \n";
cin.get(username, 6);
cin.ignore('\n');
if (username[5] != '\n')
cout << "\nYour username should be 5 digits!\n\n";
} while (username[5] != '\n');
【问题讨论】:
-
我不明白,你想得到包括 "\n" 在内的 6 个字符,但你使用的是 cin.ignore('\n') ??
-
如果你使用 C++ 为什么不使用 std::string 而不是 char[] ?