如果在提示输入字符时输入john
,while语句将循环4次,每次循环代表john的每个字母,然后再次要求用户输入。
为什么这个程序不允许我在john的4个字符用完之前插入更多的输入呢?我希望它丢弃字符串john剩下的3个字母,并要求我在第二个循环中输入更多的内容。
整个例子可以在Bjarne Stroustrup The C++编程语言第4版的第44页找到。
#include <iostream>
using namespace std;
bool question() {
while (true) {
cout << "Continue ?\n";
char answer = 0;
cin >> answer;
cout << "answer: " << answer << endl;
}
return false;
}
int main () {
cout << question() << endl;
}
输出变为:
Continue ?
john
answer: j
Continue ?
answer: o
Continue ?
answer: h
Continue ?
answer: n
Continue ?
1条答案
按热度按时间kb5ga3dv1#
您可能会想,为什么不允许在每个提示符处输入一个字符,因为您已经在输入流中输入了四个字符,所以循环运行四次以消耗所有输入。
如果您只想使用输入中的第一个字符,那么您可能希望获得整行并只处理第一个字符。
当然,您还应该检查没有输入空行,这可能就像检查
line[0]
是否不是'\0'
一样简单。