【发布时间】:2016-02-22 14:01:27
【问题描述】:
我正在尝试了解如何使用 cin.get()。我只想接受 20 个字符的输入,但我尝试过的任何方法都可以用来检测进一步的输入停止
我接受一次输入一个字符并将其输入到一个数组中,如下所示:
void getInput(char arr[], int size) {
char number = '0';
for (int i = 0; i < size + 1; i++) {
char number;
cin.get(number);
if ((number >= '0') && (number <= '9')) {
arr[i] = number;
}
if ((number == ' ') || (number == '\n')) {
break;
}
}
}
我试过做这样的事情,但是你可以看到我的理解不是很好:
if (number == '\n') {
done == true;
}
例如,将整个内容包装在 while (!done) 中,但这在我输入 20 个或更少字符的情况下不起作用。
【问题讨论】:
-
您并没有真正描述您的实际问题是什么。你希望这段代码做什么?它有什么作用? “停止接受输入”是什么意思?报告错误?忽略它?
-
对不起@DavidSchwartz,我会更清楚。基本上我可能会输入 12345678901234567890 (20 位)并按回车键,它会正常工作,但我希望它只输入 1234567890123456789012345678901234567890 (40 位)的前 20 位数字并忽略其余部分。现在如果我输入超过 20 个数字,下次我做 cin 时会包括剩菜。
-
所以你想读一行?如果是这样,为什么不编写代码来做到这一点?
标签: c++ arrays input char limit